func (m *Mongo) AddTest(c *gin.Context) { var addTestInput struct { Token string `json:"token"` Ids []string `json:"ids"` Name string `json:"name"` Group string `json:"group"` } //Parse the req body err := c.BindJSON(&addTestInput) if err != nil { //send the incorrect response utils.ErrorResponse(c, http.StatusBadRequest, "Parse error") return } //check the token token, err := utils.JwtAuthenticator(addTestInput.Token) if err != nil { utils.ErrorResponse(c, http.StatusForbidden, "Log In again") return } var test models.Test subject, ok := token.Claims["subject"].(string) if !ok { utils.ErrorResponse(c, http.StatusForbidden, "Log In again") return } var questionIds []bson.ObjectId //convert string ids to object ids for _, e := range addTestInput.Ids { if bson.IsObjectIdHex(e) { log.Println("The objectid for") questionIds = append(questionIds, bson.ObjectIdHex(e)) } else { utils.ErrorResponse(c, http.StatusInternalServerError, "ITS NOT U ITS ME ") return } } test.Subject = subject test.QuestionIds = questionIds test.Name = addTestInput.Name test.Group = addTestInput.Group test.Enable = false //add test to database err = test.AddTest(m.Database) if err != nil { log.Println("The funckin eeror", err) utils.ErrorResponse(c, http.StatusInternalServerError, "Cannot Insert") return } c.JSON(http.StatusOK, gin.H{ "err": nil, }) }