Ejemplo n.º 1
0
/**
Handler for new teacher
*/
func (mongo *Mongo) AddTeacher(c *gin.Context) {
	/**
	Room for imporv use auto bindind
	*/

	var teacher models.Teacher

	var req struct {
		AdminPass string `json:"adminPass"`
		Username  string `json:"username"`
		Password  string `json:"password"`
		Subject   string `json:"subject"`
	}

	err := c.BindJSON(&req)

	if err != nil {
		utils.ErrorResponse(c, http.StatusBadRequest, "Could not parse")
		return
	}

	adminPass := req.AdminPass

	if adminPass == "admin" {

		teacher.Password = req.Password
		teacher.Subject = req.Subject
		teacher.Username = req.Username

		if teacher.Password == "" || teacher.Subject == "" || teacher.Username == "" {
			var res utils.Response
			res.Err = true
			res.Msg = "Missing params"

			c.JSON(http.StatusForbidden, res)
		} else {

			/**
			Insert the teacher in the db
			*/
			response := teacher.AddDoc(mongo.Database)

			if response.Err == true {
				c.JSON(http.StatusInternalServerError, response)
			} else {
				c.JSON(http.StatusOK, response)
			}
		}

	} else {
		var res utils.Response
		res.Err = true
		res.Msg = "Unauth "

		c.JSON(http.StatusForbidden, res)
	}
}