Enroll Student and Register Teacher api done
This commit is contained in:
1 parent
f8d006fe8b
commit
0a678badb3
6 files changed
+375
-72
No files matched your search
+144
-16
@@ -1,21 +1,23 @@
|
|||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"school-management/database"
|
||||||
"school-management/models"
|
"school-management/models"
|
||||||
|
"time"
|
||||||
|
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Test struct {
|
type ErrorStruct struct {
|
||||||
a string
|
Error string
|
||||||
b int
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Test) getA() string {
|
var teacherCollection *mongo.Collection = database.OpenCollection(database.Client, "teachers")
|
||||||
return t.a
|
var studentCollection *mongo.Collection = database.OpenCollection(database.Client, "students")
|
||||||
}
|
|
||||||
|
|
||||||
func Enroll(c *fiber.Ctx) error {
|
func Enroll(c *fiber.Ctx) error {
|
||||||
var data map[string]string
|
var data map[string]string
|
||||||
@@ -24,19 +26,145 @@ func Enroll(c *fiber.Ctx) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check minimum enroll field requirements are met
|
||||||
|
if data["firstname"] == "" || data["lastname"] == "" || data["age"] == "" || data["gradelevel"] == "" || data["dob"] == "" || data["email"] == "" {
|
||||||
|
return c.Status(400).JSON(ErrorStruct{Error: "missing required fields"})
|
||||||
|
}
|
||||||
|
|
||||||
// Get age and grade level and convert to int
|
// Get age and grade level and convert to int
|
||||||
intAge, _ := strconv.Atoi(data["age"])
|
intAge, _ := strconv.Atoi(data["age"])
|
||||||
intGradeLevel, _ := strconv.Atoi(data["gradelevel"])
|
intGradeLevel, _ := strconv.Atoi(data["gradelevel"])
|
||||||
|
|
||||||
student := models.Student{
|
student := models.Student{}
|
||||||
FirstName: data["firstname"],
|
student.FirstName = data["firstname"]
|
||||||
LastName: data["lastname"],
|
student.MiddleName = data["middlename"]
|
||||||
Age: intAge,
|
student.LastName = data["lastname"]
|
||||||
GradeLevel: intGradeLevel,
|
student.Age = intAge
|
||||||
DOB: data["dob"],
|
student.GradeLevel = intGradeLevel
|
||||||
}
|
student.DOB = data["dob"]
|
||||||
student.Password = student.HashPassword(data["password"])
|
student.Email = data["email"]
|
||||||
student.Email = student.GenerateSchoolEmail()
|
student.Province = data["province"]
|
||||||
|
student.City = data["city"]
|
||||||
|
student.Address = data["address"]
|
||||||
|
student.Postal = data["postal"]
|
||||||
|
|
||||||
return c.JSON(student)
|
student.YOG = ((12 - student.GradeLevel) + time.Now().Year()) + 1
|
||||||
|
|
||||||
|
student.SchoolEmail = student.GenerateSchoolEmail()
|
||||||
|
|
||||||
|
tempPass := student.GeneratePassword(12, 1, 1, 1)
|
||||||
|
student.Password = student.HashPassword(tempPass)
|
||||||
|
student.TempPassword = true
|
||||||
|
// Send student personal email temp password
|
||||||
|
|
||||||
|
student.Created_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()
|
||||||
|
|
||||||
|
result, insertErr := studentCollection.InsertOne(c.Context(), student)
|
||||||
|
if insertErr != nil {
|
||||||
|
return c.Status(500).JSON(ErrorStruct{Error: "the student could not be inserted"})
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.Status(201).JSON(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterTeacher(c *fiber.Ctx) error {
|
||||||
|
var data map[string]string
|
||||||
|
|
||||||
|
if err := c.BodyParser(&data); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check minimum register teacher field requirements are met
|
||||||
|
if data["firstname"] == "" || data["lastname"] == "" || data["dob"] == "" || data["email"] == "" {
|
||||||
|
return c.Status(400).JSON(ErrorStruct{Error: "missing required fields"})
|
||||||
|
}
|
||||||
|
|
||||||
|
teacher := models.Teacher{}
|
||||||
|
teacher.FirstName = data["firstname"]
|
||||||
|
teacher.LastName = data["lastname"]
|
||||||
|
teacher.Email = data["email"]
|
||||||
|
|
||||||
|
teacher.SchoolEmail = teacher.GenerateSchoolEmail()
|
||||||
|
|
||||||
|
tempPass := teacher.GeneratePassword(12, 1, 1, 1)
|
||||||
|
teacher.Password = teacher.HashPassword(tempPass)
|
||||||
|
teacher.TempPassword = true
|
||||||
|
// Send teacher personal email temp password
|
||||||
|
|
||||||
|
teacher.Created_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()
|
||||||
|
|
||||||
|
result, insertErr := teacherCollection.InsertOne(c.Context(), teacher)
|
||||||
|
if insertErr != nil {
|
||||||
|
return c.Status(500).JSON(ErrorStruct{Error: "the teacher could not be inserted"})
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.Status(201).JSON(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentName(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentGradeLevel(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentHomeroom(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentPassword(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentLocker(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentAddress(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentYOG(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentContacts(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentPhoto(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateStudentEmail(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateTeacherHomeroom(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateTeacherPassword(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateTeacherAddress(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateTeacherPhoto(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateTeacherEmail(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateTeacherName(c *fiber.Ctx) error {
|
||||||
|
return c.JSON("status:ok")
|
||||||
}
|
}
|
||||||
@@ -9,8 +9,7 @@ import (
|
|||||||
"go.mongodb.org/mongo-driver/mongo"
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
)
|
)
|
||||||
|
|
||||||
var client *mongo.Client = database.DBinstance()
|
var studentCollection *mongo.Collection = database.OpenCollection(database.Client, "students")
|
||||||
var studentCollection *mongo.Collection = database.OpenCollection(client, "students")
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
app := fiber.New()
|
app := fiber.New()
|
||||||
|
|||||||
+12
-12
@@ -7,16 +7,16 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Contact struct {
|
type Contact struct {
|
||||||
ID primitive.ObjectID `bson:"_id"`
|
ID primitive.ObjectID `bson:"_id"`
|
||||||
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"`
|
||||||
Address string `json:"address" validate:"required"`
|
Address string `json:"address" validate:"required"`
|
||||||
Phone string `json:"phone" validate:"required"`
|
HomePhone string `json:"homephone" validate:"required"`
|
||||||
SecondaryPhone string `json:"secondaryphone"`
|
WorkPhone string `json:"workphone"`
|
||||||
Email string `json:"email" validate:"required"`
|
Email string `json:"email" validate:"required"`
|
||||||
Relation string `json:"relation" validate:"required"`
|
Relation string `json:"relation" validate:"required"`
|
||||||
PrimaryContact bool `json:"primaraycontact" validate:"required"`
|
Priotrity int `json:"priority" validate:"required"`
|
||||||
Created_at time.Time `json:"created_at"`
|
Created_at time.Time `json:"created_at"`
|
||||||
Updated_at time.Time `json:"updated_at"`
|
Updated_at time.Time `json:"updated_at"`
|
||||||
}
|
}
|
||||||
+93
-25
@@ -1,8 +1,10 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math/rand"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
"unicode"
|
||||||
|
|
||||||
"golang.org/x/crypto/bcrypt"
|
"golang.org/x/crypto/bcrypt"
|
||||||
|
|
||||||
@@ -10,33 +12,35 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Student struct {
|
type Student struct {
|
||||||
ID primitive.ObjectID `bson:"_id"`
|
ID primitive.ObjectID `bson:"_id"`
|
||||||
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"`
|
||||||
Age int `json:"age" validate:"required"`
|
Age int `json:"age" validate:"required"`
|
||||||
GradeLevel int `json:"gradelevel" validate:"required"`
|
GradeLevel int `json:"gradelevel" validate:"required"`
|
||||||
Email string `json:"email" validate:"required"`
|
Email string `json:"email" validate:"required"`
|
||||||
Password []byte `json:"password" validate:"required,min=8,max=32"`
|
SchoolEmail string `json:"schoolemail"`
|
||||||
SID string `json:"sid"` // Student ID
|
Password string `json:"password" validate:"min=10,max=32"`
|
||||||
PED string `json:"ped"` // Personal Education Number
|
TempPassword bool `json:"temppassword"`
|
||||||
Homeroom string `json:"homeroom"`
|
SID string `json:"sid"` // Student ID
|
||||||
Locker string `json:"locker"`
|
PEN string `json:"ped"` // Personal Education Number
|
||||||
YOG string `json:"yog"` // Year of Graduation
|
Homeroom string `json:"homeroom"`
|
||||||
Address string `json:"address"`
|
Locker string `json:"locker"`
|
||||||
City string `json:"city"`
|
YOG int `json:"yog"` // Year of Graduation
|
||||||
Province string `json:"province"`
|
Address string `json:"address"`
|
||||||
PC string `json:"pc"` // Postal Code
|
City string `json:"city"`
|
||||||
DOB string `json:"dob" validate:"required"`
|
Province string `json:"province"`
|
||||||
Photo string `json:"photo"`
|
Postal string `json:"pc"` // Postal Code
|
||||||
Contacts []Contact `json:"contacts"`
|
DOB string `json:"dob" validate:"required"`
|
||||||
Created_at time.Time `json:"created_at"`
|
Photo string `json:"photo"`
|
||||||
Updated_at time.Time `json:"updated_at"`
|
Contacts []Contact `json:"contacts"`
|
||||||
|
Created_at time.Time `json:"created_at"`
|
||||||
|
Updated_at time.Time `json:"updated_at"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Student) HashPassword(password string) []byte {
|
func (s *Student) HashPassword(password string) string {
|
||||||
hashPass, _ := bcrypt.GenerateFromPassword([]byte(password), 14)
|
hash, _ := bcrypt.GenerateFromPassword([]byte(password), 14)
|
||||||
return hashPass
|
return string(hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Student) GenerateSchoolEmail() string {
|
func (s *Student) GenerateSchoolEmail() string {
|
||||||
@@ -44,3 +48,67 @@ func (s *Student) GenerateSchoolEmail() string {
|
|||||||
// Add check to see if email already exists
|
// Add check to see if email already exists
|
||||||
return email
|
return email
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Student) ComparePasswords(password string) bool {
|
||||||
|
err := bcrypt.CompareHashAndPassword([]byte(s.Password), []byte(password))
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Student) CheckPasswordStrength(password string) bool {
|
||||||
|
|
||||||
|
var hasUpper bool = true
|
||||||
|
for _, r := range password {
|
||||||
|
if !unicode.IsUpper(r) && unicode.IsLetter(r) {
|
||||||
|
hasUpper = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var hasLower bool = true
|
||||||
|
for _, r := range password {
|
||||||
|
if !unicode.IsLower(r) && unicode.IsLetter(r) {
|
||||||
|
hasLower = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.ContainsAny(password, specialCharSet) && hasLower && hasUpper {
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Student) GeneratePassword(passwordLength, minSpecialChar, minNum, minUpperCase int) string {
|
||||||
|
var password strings.Builder
|
||||||
|
|
||||||
|
//Set special character
|
||||||
|
for i := 0; i < minSpecialChar; i++ {
|
||||||
|
random := rand.Intn(len(specialCharSet))
|
||||||
|
password.WriteString(string(specialCharSet[random]))
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set numeric
|
||||||
|
for i := 0; i < minNum; i++ {
|
||||||
|
random := rand.Intn(len(numberSet))
|
||||||
|
password.WriteString(string(numberSet[random]))
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set uppercase
|
||||||
|
for i := 0; i < minUpperCase; i++ {
|
||||||
|
random := rand.Intn(len(upperCharSet))
|
||||||
|
password.WriteString(string(upperCharSet[random]))
|
||||||
|
}
|
||||||
|
|
||||||
|
remainingLength := passwordLength - minSpecialChar - minNum - minUpperCase
|
||||||
|
for i := 0; i < remainingLength; i++ {
|
||||||
|
random := rand.Intn(len(allCharSet))
|
||||||
|
password.WriteString(string(allCharSet[random]))
|
||||||
|
}
|
||||||
|
inRune := []rune(password.String())
|
||||||
|
rand.Shuffle(len(inRune), func(i, j int) {
|
||||||
|
inRune[i], inRune[j] = inRune[j], inRune[i]
|
||||||
|
})
|
||||||
|
return string(inRune)
|
||||||
|
}
|
||||||
+105
-16
@@ -1,26 +1,115 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math/rand"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
"unicode"
|
||||||
|
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
|
"golang.org/x/crypto/bcrypt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
lowerCharSet = "abcdedfghijklmnopqrst"
|
||||||
|
upperCharSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
specialCharSet = "!@#$%&*?,.`~"
|
||||||
|
numberSet = "0123456789"
|
||||||
|
allCharSet = lowerCharSet + upperCharSet + specialCharSet + numberSet
|
||||||
)
|
)
|
||||||
|
|
||||||
type Teacher struct {
|
type Teacher struct {
|
||||||
ID primitive.ObjectID `bson:"_id"`
|
ID primitive.ObjectID `bson:"_id"`
|
||||||
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"`
|
||||||
Email string `json:"email" validate:"required"`
|
Email string `json:"email" validate:"required"`
|
||||||
Password string `json:"password" validate:"required"`
|
SchoolEmail string `json:"schoolemail"`
|
||||||
TID string `json:"tid"` // Teacher ID
|
Password string `json:"password" validate:"min=10,max=32"`
|
||||||
Homeroom string `json:"homeroom"`
|
TempPassword bool `json:"temppassword"`
|
||||||
Address string `json:"address"`
|
TID string `json:"tid"` // Teacher ID
|
||||||
City string `json:"city"`
|
Homeroom string `json:"homeroom"`
|
||||||
Province string `json:"province"`
|
Address string `json:"address"`
|
||||||
PC string `json:"pc"` // Postal Code
|
City string `json:"city"`
|
||||||
DOB string `json:"dob" validate:"required"`
|
Province string `json:"province"`
|
||||||
Photo string `json:"string"`
|
Postal string `json:"pc"` // Postal Code
|
||||||
Created_at time.Time `json:"created_at"`
|
DOB string `json:"dob" validate:"required"`
|
||||||
Updated_at time.Time `json:"updated_at"`
|
Photo string `json:"string"`
|
||||||
|
Created_at time.Time `json:"created_at"`
|
||||||
|
Updated_at time.Time `json:"updated_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *Teacher) HashPassword(password string) string {
|
||||||
|
hash, _ := bcrypt.GenerateFromPassword([]byte(password), 14)
|
||||||
|
return string(hash)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *Teacher) GenerateSchoolEmail() string {
|
||||||
|
var email string = strings.ToLower(string(t.FirstName[0])) + "_" + strings.ToLower(t.LastName) + "@surreyschools.ca"
|
||||||
|
// Add check to see if email already exists
|
||||||
|
return email
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *Teacher) ComparePasswords(password string) bool {
|
||||||
|
err := bcrypt.CompareHashAndPassword([]byte(t.Password), []byte(password))
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *Teacher) CheckPasswordStrength(password string) bool {
|
||||||
|
|
||||||
|
var hasUpper bool = true
|
||||||
|
for _, r := range password {
|
||||||
|
if !unicode.IsUpper(r) && unicode.IsLetter(r) {
|
||||||
|
hasUpper = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var hasLower bool = true
|
||||||
|
for _, r := range password {
|
||||||
|
if !unicode.IsLower(r) && unicode.IsLetter(r) {
|
||||||
|
hasLower = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.ContainsAny(password, specialCharSet) && hasLower && hasUpper {
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *Teacher) GeneratePassword(passwordLength, minSpecialChar, minNum, minUpperCase int) string {
|
||||||
|
var password strings.Builder
|
||||||
|
|
||||||
|
//Set special character
|
||||||
|
for i := 0; i < minSpecialChar; i++ {
|
||||||
|
random := rand.Intn(len(specialCharSet))
|
||||||
|
password.WriteString(string(specialCharSet[random]))
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set numeric
|
||||||
|
for i := 0; i < minNum; i++ {
|
||||||
|
random := rand.Intn(len(numberSet))
|
||||||
|
password.WriteString(string(numberSet[random]))
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set uppercase
|
||||||
|
for i := 0; i < minUpperCase; i++ {
|
||||||
|
random := rand.Intn(len(upperCharSet))
|
||||||
|
password.WriteString(string(upperCharSet[random]))
|
||||||
|
}
|
||||||
|
|
||||||
|
remainingLength := passwordLength - minSpecialChar - minNum - minUpperCase
|
||||||
|
for i := 0; i < remainingLength; i++ {
|
||||||
|
random := rand.Intn(len(allCharSet))
|
||||||
|
password.WriteString(string(allCharSet[random]))
|
||||||
|
}
|
||||||
|
inRune := []rune(password.String())
|
||||||
|
rand.Shuffle(len(inRune), func(i, j int) {
|
||||||
|
inRune[i], inRune[j] = inRune[j], inRune[i]
|
||||||
|
})
|
||||||
|
return string(inRune)
|
||||||
}
|
}
|
||||||
+20
-1
@@ -12,5 +12,24 @@ type Person struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Setup(app *fiber.App) {
|
func Setup(app *fiber.App) {
|
||||||
app.Post("/api/enroll", controllers.Enroll)
|
// API Handling
|
||||||
|
app.Post("/api/student/enroll", controllers.Enroll)
|
||||||
|
app.Post("/api/student/updateName", controllers.UpdateStudentName)
|
||||||
|
app.Post("/api/student/updateGradeLevel", controllers.UpdateStudentGradeLevel)
|
||||||
|
app.Post("/api/student/updateHomeroom", controllers.UpdateStudentHomeroom)
|
||||||
|
app.Post("/api/student/updateLocker", controllers.UpdateStudentLocker)
|
||||||
|
app.Post("/api/studnet/updateYOG", controllers.UpdateStudentYOG)
|
||||||
|
app.Post("/api/studnet/updateContacts", controllers.UpdateStudentContacts)
|
||||||
|
app.Post("/api/student/updatePassword", controllers.UpdateStudentPassword)
|
||||||
|
app.Post("/api/student/updateAddress", controllers.UpdateStudentAddress)
|
||||||
|
app.Post("/api/student/updatePhoto", controllers.UpdateStudentPhoto)
|
||||||
|
app.Post("/api/student/updateEmail", controllers.UpdateStudentEmail)
|
||||||
|
|
||||||
|
app.Post("/api/teacher/register", controllers.RegisterTeacher)
|
||||||
|
app.Post("/api/teacher/updatePassword", controllers.UpdateTeacherPassword)
|
||||||
|
app.Post("/api/teacher/updateAddress", controllers.UpdateTeacherAddress)
|
||||||
|
app.Post("/api/teacher/updatePhoto", controllers.UpdateTeacherPhoto)
|
||||||
|
app.Post("/api/teacher/updateName", controllers.UpdateTeacherName)
|
||||||
|
app.Post("/api/teacher/updateHomeroom", controllers.UpdateTeacherHomeroom)
|
||||||
|
app.Post("/api/teacher/updateEmail", controllers.UpdateTeacherEmail)
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user