Add create contact and update some code

This commit is contained in:
SowinskiBraeden committed 2021-10-09 10:43:59 -07:00
1 parent 13aaf36da7
commit 7d649ef05b
2 files changed
+132 -25

No files matched your search

+129 -25
View File
@@ -17,6 +17,7 @@ import (
var teacherCollection *mongo.Collection = database.OpenCollection(database.Client, "teachers") var teacherCollection *mongo.Collection = database.OpenCollection(database.Client, "teachers")
var studentCollection *mongo.Collection = database.OpenCollection(database.Client, "students") var studentCollection *mongo.Collection = database.OpenCollection(database.Client, "students")
var contactCollection *mongo.Collection = database.OpenCollection(database.Client, "contacts")
const SecretKey = "secret" const SecretKey = "secret"
@@ -43,16 +44,12 @@ func Enroll(c *fiber.Ctx) error {
}) })
} }
// Get age and grade level and convert to int var student models.Student
intAge, _ := strconv.Atoi(data["age"])
intGradeLevel, _ := strconv.Atoi(data["gradelevel"])
student := models.Student{}
student.FirstName = data["firstname"] student.FirstName = data["firstname"]
student.MiddleName = data["middlename"] student.MiddleName = data["middlename"]
student.LastName = data["lastname"] student.LastName = data["lastname"]
student.Age = intAge student.Age, _ = strconv.Atoi(data["age"])
student.GradeLevel = intGradeLevel student.GradeLevel, _ = strconv.Atoi(data["gradelevel"])
student.DOB = data["dob"] student.DOB = data["dob"]
student.Email = data["email"] student.Email = data["email"]
student.Province = data["province"] student.Province = data["province"]
@@ -73,7 +70,7 @@ func Enroll(c *fiber.Ctx) error {
student.Updated_at, _ = time.Parse(time.RFC3339, time.Now().Format(time.RFC3339)) student.Updated_at, _ = time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
student.ID = primitive.NewObjectID() student.ID = primitive.NewObjectID()
result, insertErr := studentCollection.InsertOne(ctx, student) _, insertErr := studentCollection.InsertOne(ctx, student)
if insertErr != nil { if insertErr != nil {
cancel() cancel()
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
@@ -87,7 +84,6 @@ func Enroll(c *fiber.Ctx) error {
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"success": true, "success": true,
"message": "successfully inserted student", "message": "successfully inserted student",
"result": result,
}) })
} }
@@ -114,7 +110,7 @@ func RegisterTeacher(c *fiber.Ctx) error {
}) })
} }
teacher := models.Teacher{} var teacher models.Teacher
teacher.FirstName = data["firstname"] teacher.FirstName = data["firstname"]
teacher.LastName = data["lastname"] teacher.LastName = data["lastname"]
teacher.Email = data["email"] teacher.Email = data["email"]
@@ -130,7 +126,7 @@ func RegisterTeacher(c *fiber.Ctx) error {
teacher.Updated_at, _ = time.Parse(time.RFC3339, time.Now().Format(time.RFC3339)) teacher.Updated_at, _ = time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
teacher.ID = primitive.NewObjectID() teacher.ID = primitive.NewObjectID()
result, insertErr := teacherCollection.InsertOne(ctx, teacher) _, insertErr := teacherCollection.InsertOne(ctx, teacher)
if insertErr != nil { if insertErr != nil {
cancel() cancel()
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
@@ -144,7 +140,6 @@ func RegisterTeacher(c *fiber.Ctx) error {
return c.Status(fiber.StatusOK).JSON(fiber.Map{ return c.Status(fiber.StatusOK).JSON(fiber.Map{
"success": true, "success": true,
"message": "successfully inserted teacher", "message": "successfully inserted teacher",
"result": result,
}) })
} }
@@ -381,11 +376,13 @@ func UpdateStudentName(c *fiber.Ctx) error {
"error": err, "error": err,
}) })
} }
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
update := bson.M{ update := bson.M{
"$set": bson.M{ "$set": bson.M{
"firstname": data["firstname"], "firstname": data["firstname"],
"middlename": data["middlename"], "middlename": data["middlename"],
"lastname": data["lastname"], "lastname": data["lastname"],
"updated_at": update_time,
}, },
} }
@@ -442,9 +439,11 @@ func UpdateStudentGradeLevel(c *fiber.Ctx) error {
"error": err, "error": err,
}) })
} }
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
update := bson.M{ update := bson.M{
"$set": bson.M{ "$set": bson.M{
"gradelevel": data["gradelevel"], "gradelevel": data["gradelevel"],
"updated_at": update_time,
}, },
} }
@@ -471,55 +470,94 @@ func UpdateStudentGradeLevel(c *fiber.Ctx) error {
} }
func UpdateStudentHomeroom(c *fiber.Ctx) error { func UpdateStudentHomeroom(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateStudentPassword(c *fiber.Ctx) error { func UpdateStudentPassword(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateStudentLocker(c *fiber.Ctx) error { func UpdateStudentLocker(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateStudentAddress(c *fiber.Ctx) error { func UpdateStudentAddress(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateStudentYOG(c *fiber.Ctx) error { func UpdateStudentYOG(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateStudentContacts(c *fiber.Ctx) error { func UpdateStudentContacts(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateStudentPhoto(c *fiber.Ctx) error { func UpdateStudentPhoto(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateStudentEmail(c *fiber.Ctx) error { func UpdateStudentEmail(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateTeacherHomeroom(c *fiber.Ctx) error { func UpdateTeacherHomeroom(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateTeacherPassword(c *fiber.Ctx) error { func UpdateTeacherPassword(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateTeacherAddress(c *fiber.Ctx) error { func UpdateTeacherAddress(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateTeacherPhoto(c *fiber.Ctx) error { func UpdateTeacherPhoto(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateTeacherEmail(c *fiber.Ctx) error { func UpdateTeacherEmail(c *fiber.Ctx) error {
return c.JSON("status:ok") return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
} }
func UpdateTeacherName(c *fiber.Ctx) error { func UpdateTeacherName(c *fiber.Ctx) error {
@@ -553,11 +591,13 @@ func UpdateTeacherName(c *fiber.Ctx) error {
"error": err, "error": err,
}) })
} }
update_time, _ := time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
update := bson.M{ update := bson.M{
"$set": bson.M{ "$set": bson.M{
"firstname": data["firstname"], "firstname": data["firstname"],
"middlename": data["middlename"], "middlename": data["middlename"],
"lastname": data["lastname"], "lastname": data["lastname"],
"updated_at": update_time,
}, },
} }
@@ -582,3 +622,67 @@ func UpdateTeacherName(c *fiber.Ctx) error {
"result": result, "result": result,
}) })
} }
func CreateContact(c *fiber.Ctx) error {
var data map[string]string
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
if err := c.BodyParser(&data); err != nil {
cancel()
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"success": false,
"message": "Failed to parse body",
"error": err,
})
}
// Check required fields are included
if data["firstname"] == "" || data["lastname"] == "" || data["homephone"] == "" || data["email"] == "" || data["priority"] == "" || data["relation"] == "" {
cancel()
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"success": false,
"message": "missing required fields",
})
}
var contact models.Contact
contact.FirstName = data["firstname"]
contact.MiddleName = data["middlename"]
contact.LastName = data["lastname"]
contact.HomePhone = data["homephone"]
contact.WorkPhone = data["workphone"]
contact.Email = data["email"]
contact.Province = data["province"]
contact.City = data["city"]
contact.Address = data["address"]
contact.Postal = data["postal"]
contact.Relation = data["relation"]
contact.Priotrity, _ = strconv.Atoi(data["priority"])
contact.Created_at, _ = time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
contact.Updated_at, _ = time.Parse(time.RFC3339, time.Now().Format(time.RFC3339))
contact.ID = primitive.NewObjectID()
_, insertErr := contactCollection.InsertOne(ctx, contact)
if insertErr != nil {
cancel()
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"success": false,
"message": "the contact could not be inserted",
"error": insertErr,
})
}
defer cancel()
return c.Status(fiber.StatusOK).JSON(fiber.Map{
"success": true,
"message": "successfully inserted contact",
})
}
func UpdateContact(c *fiber.Ctx) error {
return c.Status(fiber.StatusNotImplemented).JSON(fiber.Map{
"success": nil,
"message": "not implimented",
})
}
+3
View File
@@ -11,7 +11,10 @@ type Contact 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"`
Province string `json:"province"`
City string `json:"city"`
Address string `json:"address" validate:"required"` Address string `json:"address" validate:"required"`
Postal string `json:"postal"`
HomePhone string `json:"homephone" validate:"required"` HomePhone string `json:"homephone" validate:"required"`
WorkPhone string `json:"workphone"` WorkPhone string `json:"workphone"`
Email string `json:"email" validate:"required"` Email string `json:"email" validate:"required"`