bug fixes for go 1.19 update
This commit is contained in:
7 files changed
+105
-93
No files matched your search
@@ -231,18 +231,20 @@ func Enroll(c *fiber.Ctx) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
student.PersonalData.FirstName = data["firstname"].(string)
|
student.Personal.FirstName = data["firstname"].(string)
|
||||||
student.PersonalData.MiddleName = data["middlename"].(string)
|
if middle, ok := data["middlename"]; ok {
|
||||||
student.PersonalData.LastName = data["lastname"].(string)
|
student.Personal.MiddleName = middle.(string)
|
||||||
student.PersonalData.Age = data["age"].(float64)
|
}
|
||||||
|
student.Personal.LastName = data["lastname"].(string)
|
||||||
|
student.Personal.Age = data["age"].(float64)
|
||||||
student.SchoolData.GradeLevel = data["gradelevel"].(float64)
|
student.SchoolData.GradeLevel = data["gradelevel"].(float64)
|
||||||
student.PersonalData.DOB = data["dob"].(string)
|
student.Personal.DOB = data["dob"].(string)
|
||||||
student.PersonalData.Email = data["email"].(string)
|
student.Personal.Email = data["email"].(string)
|
||||||
student.PersonalData.Province = data["province"].(string)
|
student.Personal.Province = data["province"].(string)
|
||||||
student.PersonalData.City = data["city"].(string)
|
student.Personal.City = data["city"].(string)
|
||||||
student.PersonalData.Address = data["address"].(string)
|
student.Personal.Address = data["address"].(string)
|
||||||
student.PersonalData.Postal = data["postal"].(string)
|
student.Personal.Postal = data["postal"].(string)
|
||||||
student.PersonalData.Contacts = []string{}
|
student.Personal.Contacts = []string{}
|
||||||
student.SchoolData.YOG = ((12 - int(student.SchoolData.GradeLevel)) + time.Now().Year()) + 1
|
student.SchoolData.YOG = ((12 - int(student.SchoolData.GradeLevel)) + time.Now().Year()) + 1
|
||||||
|
|
||||||
var photo models.Photo
|
var photo models.Photo
|
||||||
@@ -287,10 +289,10 @@ func Enroll(c *fiber.Ctx) error {
|
|||||||
|
|
||||||
// Send student personal email student ID
|
// Send student personal email student ID
|
||||||
subject := "Account Registered"
|
subject := "Account Registered"
|
||||||
receiver := student.PersonalData.Email
|
receiver := student.Personal.Email
|
||||||
r := NewRequest([]string{receiver}, subject)
|
r := NewRequest([]string{receiver}, subject)
|
||||||
|
|
||||||
if sent := r.Send("./templates/accountRegisreded.html", map[string]string{"username": student.PersonalData.FirstName, "id": sid, "userType": "student"}); !sent {
|
if sent := r.Send("./templates/accountRegisreded.html", map[string]string{"username": student.Personal.FirstName, "id": sid, "userType": "student"}); !sent {
|
||||||
cancel()
|
cancel()
|
||||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
@@ -396,14 +398,24 @@ func RegisterTeacher(c *fiber.Ctx) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
teacher.PersonalData.FirstName = data["firstname"].(string)
|
teacher.Personal.FirstName = data["firstname"].(string)
|
||||||
teacher.PersonalData.MiddleName = data["middlename"].(string)
|
if middle, ok := data["middlename"]; ok {
|
||||||
teacher.PersonalData.LastName = data["lastname"].(string)
|
teacher.Personal.MiddleName = middle.(string)
|
||||||
teacher.PersonalData.Email = data["email"].(string)
|
}
|
||||||
teacher.PersonalData.Province = data["province"].(string)
|
teacher.Personal.LastName = data["lastname"].(string)
|
||||||
teacher.PersonalData.City = data["city"].(string)
|
teacher.Personal.Email = data["email"].(string)
|
||||||
teacher.PersonalData.Postal = data["postal"].(string)
|
if province, ok := data["province"]; ok {
|
||||||
teacher.PersonalData.DOB = data["dob"].(string)
|
teacher.Personal.Province = province.(string)
|
||||||
|
}
|
||||||
|
if city, ok := data["city"]; ok {
|
||||||
|
teacher.Personal.City = city.(string)
|
||||||
|
}
|
||||||
|
if postal, ok := data["postal"]; ok {
|
||||||
|
teacher.Personal.Postal = postal.(string)
|
||||||
|
}
|
||||||
|
if dob, ok := data["dob"]; ok {
|
||||||
|
teacher.Personal.DOB = dob.(string)
|
||||||
|
}
|
||||||
|
|
||||||
var photo models.Photo
|
var photo models.Photo
|
||||||
photo.Name = uuid.New().String()
|
photo.Name = uuid.New().String()
|
||||||
@@ -447,10 +459,10 @@ func RegisterTeacher(c *fiber.Ctx) error {
|
|||||||
|
|
||||||
// Send teacher personal email student ID
|
// Send teacher personal email student ID
|
||||||
subject := "Account Registered"
|
subject := "Account Registered"
|
||||||
receiver := teacher.PersonalData.Email
|
receiver := teacher.Personal.Email
|
||||||
r := NewRequest([]string{receiver}, subject)
|
r := NewRequest([]string{receiver}, subject)
|
||||||
|
|
||||||
if sent := r.Send("./templates/accountRegisreded.html", map[string]string{"username": teacher.PersonalData.FirstName, "id": tid, "userType": "teacher"}); !sent {
|
if sent := r.Send("./templates/accountRegisreded.html", map[string]string{"username": teacher.Personal.FirstName, "id": tid, "userType": "teacher"}); !sent {
|
||||||
cancel()
|
cancel()
|
||||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
@@ -672,10 +684,10 @@ func StudentLogin(c *fiber.Ctx) error {
|
|||||||
if !student.AccountData.Alerted {
|
if !student.AccountData.Alerted {
|
||||||
// Send student email warning of disabled account
|
// Send student email warning of disabled account
|
||||||
subject := "Account Disabled"
|
subject := "Account Disabled"
|
||||||
receiver := student.PersonalData.Email
|
receiver := student.Personal.Email
|
||||||
r := NewRequest([]string{receiver}, subject)
|
r := NewRequest([]string{receiver}, subject)
|
||||||
|
|
||||||
if sent := r.Send("./templates/accountDisabled.html", map[string]string{"username": student.PersonalData.FirstName}); !sent {
|
if sent := r.Send("./templates/accountDisabled.html", map[string]string{"username": student.Personal.FirstName}); !sent {
|
||||||
cancel()
|
cancel()
|
||||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
@@ -981,8 +993,8 @@ func Student(c *fiber.Ctx) error {
|
|||||||
|
|
||||||
var contacts []models.Contact
|
var contacts []models.Contact
|
||||||
var contact models.Contact
|
var contact models.Contact
|
||||||
for i := range student.PersonalData.Contacts {
|
for i := range student.Personal.Contacts {
|
||||||
findErr := ContactCollection.FindOne(context.TODO(), bson.M{"_id": student.PersonalData.Contacts[i]}).Decode(&contact)
|
findErr := ContactCollection.FindOne(context.TODO(), bson.M{"_id": student.Personal.Contacts[i]}).Decode(&contact)
|
||||||
if findErr != nil {
|
if findErr != nil {
|
||||||
responseData["error"] = "Error! There was an error finding some contacts"
|
responseData["error"] = "Error! There was an error finding some contacts"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,17 +63,17 @@ func UpdateStudentName(c *fiber.Ctx) error {
|
|||||||
if updateMiddle {
|
if updateMiddle {
|
||||||
update = bson.M{
|
update = bson.M{
|
||||||
"$set": bson.M{
|
"$set": bson.M{
|
||||||
"personaldata.firstname": data["firstname"],
|
"Personal.firstname": data["firstname"],
|
||||||
"personaldata.middlename": data["middlename"],
|
"Personal.middlename": data["middlename"],
|
||||||
"personaldata.lastname": data["lastname"],
|
"Personal.lastname": data["lastname"],
|
||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
update = bson.M{
|
update = bson.M{
|
||||||
"$set": bson.M{
|
"$set": bson.M{
|
||||||
"personaldata.firstname": data["firstname"],
|
"Personal.firstname": data["firstname"],
|
||||||
"personaldata.lastname": data["lastname"],
|
"Personal.lastname": data["lastname"],
|
||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -162,15 +162,15 @@ func UpdateStudentGradeLevel(c *fiber.Ctx) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Far later on this function is going to be completely automated.
|
Far later on this function is going to be completely automated.
|
||||||
Instead of an admin sending a request to update the homeroom of
|
Instead of an admin sending a request to update the homeroom of
|
||||||
a student or teacher, the system will take the room number of
|
a student or teacher, the system will take the room number of
|
||||||
the teacher's or student's Block 2 class from their schedule.
|
the teacher's or student's Block 2 class from their schedule.
|
||||||
|
|
||||||
Though this function would remain for students only, for example
|
Though this function would remain for students only, for example
|
||||||
a student requests a course change, if its their block 2 the
|
a student requests a course change, if its their block 2 the
|
||||||
admin would have to alter their homeroom to be the new class
|
admin would have to alter their homeroom to be the new class
|
||||||
number.
|
number.
|
||||||
*/
|
*/
|
||||||
func UpdateStudentHomeroom(c *fiber.Ctx) error {
|
func UpdateStudentHomeroom(c *fiber.Ctx) error {
|
||||||
var data map[string]string
|
var data map[string]string
|
||||||
@@ -332,10 +332,10 @@ func UpdateStudentPassword(c *fiber.Ctx) error {
|
|||||||
|
|
||||||
// Alert email the password has changed
|
// Alert email the password has changed
|
||||||
subject := "Password Changed"
|
subject := "Password Changed"
|
||||||
receiver := student.PersonalData.Email
|
receiver := student.Personal.Email
|
||||||
r := NewRequest([]string{receiver}, subject)
|
r := NewRequest([]string{receiver}, subject)
|
||||||
|
|
||||||
if sent := r.Send("./templates/selfPasswordChanged.html", map[string]string{"username": student.PersonalData.FirstName}); !sent {
|
if sent := r.Send("./templates/selfPasswordChanged.html", map[string]string{"username": student.Personal.FirstName}); !sent {
|
||||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
"message": "failed to send email to student",
|
"message": "failed to send email to student",
|
||||||
@@ -381,7 +381,7 @@ func ResetStudentPassword(c *fiber.Ctx) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if student.PersonalData.Email != data["email"] {
|
if student.Personal.Email != data["email"] {
|
||||||
cancel()
|
cancel()
|
||||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
@@ -416,10 +416,10 @@ func ResetStudentPassword(c *fiber.Ctx) error {
|
|||||||
|
|
||||||
// Send student personal email temp password
|
// Send student personal email temp password
|
||||||
subject := "Password Changed"
|
subject := "Password Changed"
|
||||||
receiver := student.PersonalData.Email
|
receiver := student.Personal.Email
|
||||||
r := NewRequest([]string{receiver}, subject)
|
r := NewRequest([]string{receiver}, subject)
|
||||||
|
|
||||||
if sent := r.Send("./templates/passwordChanged.html", map[string]string{"username": student.PersonalData.FirstName, "password": tempPass}); !sent {
|
if sent := r.Send("./templates/passwordChanged.html", map[string]string{"username": student.Personal.FirstName, "password": tempPass}); !sent {
|
||||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
"message": "Could not send password to students email",
|
"message": "Could not send password to students email",
|
||||||
@@ -538,10 +538,10 @@ func UpdateStudentAddress(c *fiber.Ctx) error {
|
|||||||
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
||||||
update := bson.M{
|
update := bson.M{
|
||||||
"$set": bson.M{
|
"$set": bson.M{
|
||||||
"personaldata.address": data["address"],
|
"Personal.address": data["address"],
|
||||||
"personaldata.city": data["city"],
|
"Personal.city": data["city"],
|
||||||
"personaldata.province": data["province"],
|
"Personal.province": data["province"],
|
||||||
"personaldata.postal": data["postal"],
|
"Personal.postal": data["postal"],
|
||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -687,7 +687,7 @@ func RemoveStudentContact(c *fiber.Ctx) error {
|
|||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
"$pull": bson.M{
|
"$pull": bson.M{
|
||||||
"personaldata.contacts": contact.ID,
|
"Personal.contacts": contact.ID,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -761,7 +761,7 @@ func AddStudentContact(c *fiber.Ctx) error {
|
|||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
"$push": bson.M{
|
"$push": bson.M{
|
||||||
"personaldata.contacts": contact.ID,
|
"Personal.contacts": contact.ID,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -951,7 +951,7 @@ func UpdateStudentEmail(c *fiber.Ctx) error {
|
|||||||
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
||||||
update := bson.M{
|
update := bson.M{
|
||||||
"$set": bson.M{
|
"$set": bson.M{
|
||||||
"personaldata.email": data["email"],
|
"Personal.email": data["email"],
|
||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,15 +17,15 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Far later on this function is going to be completely automated.
|
Far later on this function is going to be completely automated.
|
||||||
Instead of an admin sending a request to update the homeroom of
|
Instead of an admin sending a request to update the homeroom of
|
||||||
a student or teacher, the system will take the room number of
|
a student or teacher, the system will take the room number of
|
||||||
the teacher's or student's Block 2 class from their schedule.
|
the teacher's or student's Block 2 class from their schedule.
|
||||||
|
|
||||||
Though this function would remain for students only, for example
|
Though this function would remain for students only, for example
|
||||||
a student requests a course change, if its their block 2 the
|
a student requests a course change, if its their block 2 the
|
||||||
admin would have to alter their homeroom to be the new class
|
admin would have to alter their homeroom to be the new class
|
||||||
number.
|
number.
|
||||||
*/
|
*/
|
||||||
func UpdateTeacherHomeroom(c *fiber.Ctx) error {
|
func UpdateTeacherHomeroom(c *fiber.Ctx) error {
|
||||||
var data map[string]string
|
var data map[string]string
|
||||||
@@ -186,10 +186,10 @@ func UpdateTeacherPassword(c *fiber.Ctx) error {
|
|||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
subject := "Password Changed"
|
subject := "Password Changed"
|
||||||
receiver := teacher.PersonalData.Email
|
receiver := teacher.Personal.Email
|
||||||
r := NewRequest([]string{receiver}, subject)
|
r := NewRequest([]string{receiver}, subject)
|
||||||
|
|
||||||
if sent := r.Send("./templates/selfPasswordChanged.html", map[string]string{"username": teacher.PersonalData.FirstName}); !sent {
|
if sent := r.Send("./templates/selfPasswordChanged.html", map[string]string{"username": teacher.Personal.FirstName}); !sent {
|
||||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
"message": "Could not send password to teachers email",
|
"message": "Could not send password to teachers email",
|
||||||
@@ -234,7 +234,7 @@ func ResetTeacherPassword(c *fiber.Ctx) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if teacher.PersonalData.Email != data["email"] {
|
if teacher.Personal.Email != data["email"] {
|
||||||
cancel()
|
cancel()
|
||||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
@@ -269,10 +269,10 @@ func ResetTeacherPassword(c *fiber.Ctx) error {
|
|||||||
|
|
||||||
// Send teacher personal email temp password
|
// Send teacher personal email temp password
|
||||||
subject := "Password Changed"
|
subject := "Password Changed"
|
||||||
receiver := teacher.PersonalData.Email
|
receiver := teacher.Personal.Email
|
||||||
r := NewRequest([]string{receiver}, subject)
|
r := NewRequest([]string{receiver}, subject)
|
||||||
|
|
||||||
if sent := r.Send("./templates/passwordChanged.html", map[string]string{"username": teacher.PersonalData.FirstName, "password": tempPass}); !sent {
|
if sent := r.Send("./templates/passwordChanged.html", map[string]string{"username": teacher.Personal.FirstName, "password": tempPass}); !sent {
|
||||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||||
"success": false,
|
"success": false,
|
||||||
"message": "Could not send password to teachers email",
|
"message": "Could not send password to teachers email",
|
||||||
@@ -320,10 +320,10 @@ func UpdateTeacherAddress(c *fiber.Ctx) error {
|
|||||||
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
||||||
update := bson.M{
|
update := bson.M{
|
||||||
"$set": bson.M{
|
"$set": bson.M{
|
||||||
"personaldata.address": data["address"],
|
"Personal.address": data["address"],
|
||||||
"personaldata.city": data["city"],
|
"Personal.city": data["city"],
|
||||||
"personaldata.province": data["province"],
|
"Personal.province": data["province"],
|
||||||
"personaldata.postal": data["postal"],
|
"Personal.postal": data["postal"],
|
||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -514,7 +514,7 @@ func UpdateTeacherEmail(c *fiber.Ctx) error {
|
|||||||
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
||||||
update := bson.M{
|
update := bson.M{
|
||||||
"$set": bson.M{
|
"$set": bson.M{
|
||||||
"personaldata.email": data["email"],
|
"Personal.email": data["email"],
|
||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -592,9 +592,9 @@ func UpdateTeacherName(c *fiber.Ctx) error {
|
|||||||
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
|
||||||
update := bson.M{
|
update := bson.M{
|
||||||
"$set": bson.M{
|
"$set": bson.M{
|
||||||
"personaldata.firstname": data["firstname"],
|
"Personal.firstname": data["firstname"],
|
||||||
"personaldata.middlename": middlename,
|
"Personal.middlename": middlename,
|
||||||
"personaldata.lastname": data["lastname"],
|
"Personal.lastname": data["lastname"],
|
||||||
"updated_at": update_time,
|
"updated_at": update_time,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
module github.com/SowinskiBraeden/school-management-api
|
module github.com/SowinskiBraeden/school-management-api
|
||||||
|
|
||||||
go 1.18
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/gofiber/fiber/v2 v2.36.0
|
github.com/gofiber/fiber/v2 v2.36.0
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2/middleware/cors"
|
"github.com/gofiber/fiber/v2/middleware/cors"
|
||||||
)
|
)
|
||||||
|
|
||||||
const version string = "\nv1.1.0-Beta"
|
const version string = "\nv1.1.2-Beta"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
fmt.Println(version)
|
fmt.Println(version)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ var StudentCollection *mongo.Collection = database.OpenCollection(database.Clien
|
|||||||
|
|
||||||
type Student struct {
|
type Student struct {
|
||||||
ID primitive.ObjectID `bson:"_id"`
|
ID primitive.ObjectID `bson:"_id"`
|
||||||
PersonalData struct {
|
Personal struct {
|
||||||
FirstName string `json:"firstname" validate:"required"`
|
FirstName string `json:"firstname" validate:"required"`
|
||||||
MiddleName string `json:"middlename"`
|
MiddleName string `json:"middlename"`
|
||||||
LastName string `json:"lastname" validate:"required"`
|
LastName string `json:"lastname" validate:"required"`
|
||||||
@@ -35,7 +35,7 @@ type Student struct {
|
|||||||
Postal string `json:"postal"`
|
Postal string `json:"postal"`
|
||||||
DOB string `json:"dob" validate:"required"`
|
DOB string `json:"dob" validate:"required"`
|
||||||
Contacts []string `json:"contacts"` // List of contact ID's rather than contact object
|
Contacts []string `json:"contacts"` // List of contact ID's rather than contact object
|
||||||
} `json:"personaldata"`
|
} `json:"Personal"`
|
||||||
SchoolData struct {
|
SchoolData struct {
|
||||||
GradeLevel float64 `json:"gradelevel" validate:"required"`
|
GradeLevel float64 `json:"gradelevel" validate:"required"`
|
||||||
SID string `json:"sid"` // Student ID
|
SID string `json:"sid"` // Student ID
|
||||||
@@ -81,15 +81,15 @@ func (s *Student) EmailExists(email string) bool {
|
|||||||
|
|
||||||
func (s *Student) GenerateSchoolEmail(offset int, lastEmail string) string {
|
func (s *Student) GenerateSchoolEmail(offset int, lastEmail string) string {
|
||||||
addr := os.Getenv("SYSTEM_EMAIL_ADDRESS")
|
addr := os.Getenv("SYSTEM_EMAIL_ADDRESS")
|
||||||
var email string = strings.ToLower(string(s.PersonalData.FirstName[0])) + "." + strings.ToLower(s.PersonalData.LastName) + addr
|
var email string = strings.ToLower(string(s.Personal.FirstName[0])) + "." + strings.ToLower(s.Personal.LastName) + addr
|
||||||
if offset > 0 && offset < len([]rune(s.PersonalData.FirstName))-1 {
|
if offset > 0 && offset < len([]rune(s.Personal.FirstName))-1 {
|
||||||
email = lastEmail[:offset] + strings.ToLower(string(s.PersonalData.FirstName[offset])) + lastEmail[offset:] + addr
|
email = lastEmail[:offset] + strings.ToLower(string(s.Personal.FirstName[offset])) + lastEmail[offset:] + addr
|
||||||
}
|
}
|
||||||
if offset == len([]rune(s.PersonalData.FirstName))-1 {
|
if offset == len([]rune(s.Personal.FirstName))-1 {
|
||||||
email = strings.ToLower(s.PersonalData.FirstName) + "." + strings.ToLower(s.PersonalData.LastName) + addr
|
email = strings.ToLower(s.Personal.FirstName) + "." + strings.ToLower(s.Personal.LastName) + addr
|
||||||
}
|
}
|
||||||
if offset > len([]rune(s.PersonalData.FirstName))-1 {
|
if offset > len([]rune(s.Personal.FirstName))-1 {
|
||||||
email = strings.ToLower(s.PersonalData.FirstName) + "." + strings.ToLower(s.PersonalData.LastName) + strconv.Itoa(offset-len([]rune(s.PersonalData.FirstName))) + addr
|
email = strings.ToLower(s.Personal.FirstName) + "." + strings.ToLower(s.Personal.LastName) + strconv.Itoa(offset-len([]rune(s.Personal.FirstName))) + addr
|
||||||
}
|
}
|
||||||
return email
|
return email
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ var TeacherCollection *mongo.Collection = database.OpenCollection(database.Clien
|
|||||||
|
|
||||||
type Teacher struct {
|
type Teacher struct {
|
||||||
ID primitive.ObjectID `bson:"_id"`
|
ID primitive.ObjectID `bson:"_id"`
|
||||||
PersonalData struct {
|
Personal struct {
|
||||||
FirstName string `json:"firstname" validate:"required"`
|
FirstName string `json:"firstname" validate:"required"`
|
||||||
MiddleName string `json:"middlename"`
|
MiddleName string `json:"middlename"`
|
||||||
LastName string `json:"lastname" validate:"required"`
|
LastName string `json:"lastname" validate:"required"`
|
||||||
@@ -38,7 +38,7 @@ type Teacher struct {
|
|||||||
Province string `json:"province"`
|
Province string `json:"province"`
|
||||||
Postal string `json:"postal"`
|
Postal string `json:"postal"`
|
||||||
DOB string `json:"dob" validate:"required"`
|
DOB string `json:"dob" validate:"required"`
|
||||||
} `json:"personaldata"`
|
} `json:"Personal"`
|
||||||
SchoolData struct {
|
SchoolData struct {
|
||||||
TID string `json:"tid"` // Teacher ID
|
TID string `json:"tid"` // Teacher ID
|
||||||
Homeroom string `json:"homeroom"`
|
Homeroom string `json:"homeroom"`
|
||||||
@@ -79,15 +79,15 @@ func (t *Teacher) EmailExists(email string) bool {
|
|||||||
|
|
||||||
func (t *Teacher) GenerateSchoolEmail(offset int, lastEmail string) string {
|
func (t *Teacher) GenerateSchoolEmail(offset int, lastEmail string) string {
|
||||||
addr := os.Getenv("SYSTEM_EMAIL_ADDRESS")
|
addr := os.Getenv("SYSTEM_EMAIL_ADDRESS")
|
||||||
var email string = strings.ToLower(t.PersonalData.LastName) + "_" + strings.ToLower(string(t.PersonalData.FirstName[0])) + addr
|
var email string = strings.ToLower(t.Personal.LastName) + "_" + strings.ToLower(string(t.Personal.FirstName[0])) + addr
|
||||||
if offset > 0 && offset < len([]rune(t.PersonalData.FirstName))-1 {
|
if offset > 0 && offset < len([]rune(t.Personal.FirstName))-1 {
|
||||||
email = lastEmail[:strings.Index(lastEmail, "_")+offset+1] + strings.ToLower(string(t.PersonalData.FirstName[offset])) + addr
|
email = lastEmail[:strings.Index(lastEmail, "_")+offset+1] + strings.ToLower(string(t.Personal.FirstName[offset])) + addr
|
||||||
}
|
}
|
||||||
if offset == len([]rune(t.PersonalData.FirstName))-1 {
|
if offset == len([]rune(t.Personal.FirstName))-1 {
|
||||||
email = strings.ToLower(t.PersonalData.LastName) + "_" + strings.ToLower(t.PersonalData.FirstName) + addr
|
email = strings.ToLower(t.Personal.LastName) + "_" + strings.ToLower(t.Personal.FirstName) + addr
|
||||||
}
|
}
|
||||||
if offset > len([]rune(t.PersonalData.FirstName))-1 {
|
if offset > len([]rune(t.Personal.FirstName))-1 {
|
||||||
email = strings.ToLower(t.PersonalData.LastName) + "_" + strings.ToLower(t.PersonalData.FirstName) + strconv.Itoa(offset-len([]rune(t.PersonalData.FirstName))) + addr
|
email = strings.ToLower(t.Personal.LastName) + "_" + strings.ToLower(t.Personal.FirstName) + strconv.Itoa(offset-len([]rune(t.Personal.FirstName))) + addr
|
||||||
}
|
}
|
||||||
return email
|
return email
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user