Created
August 6, 2020 02:23
-
-
Save Leeaandrob/647e2297903333d37fcb01876dfc9c9c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // model | |
| // Ladder struct used to store ladder | |
| type Ladder struct { | |
| Model | |
| Name string `json:"name" bson:"name"` | |
| Profiles Profiles `json:"profiles" bson:"profiles"` | |
| Kind string `json:"kind" bson:"kind"` | |
| UserID string `json:"userId" bson:"userId"` | |
| LivepeerID string `json:"livepeerID" bson:"livepeerID"` | |
| } | |
| // AddLadder method to create a new ladder on db | |
| func AddLadder(name, kind, userID, livepeerID string, profiles Profiles) (Ladder, error) { | |
| t := time.Now() | |
| ladder := Ladder{ | |
| Name: name, | |
| Kind: kind, | |
| UserID: userID, | |
| LivepeerID: livepeerID, | |
| Profiles: profiles, | |
| } | |
| ladder.CreatedAt = fmt.Sprintf("%s", t.Format("2006-01-02 15:04:05")) | |
| ladder.UpdatedAt = fmt.Sprintf("%s", t.Format("2006-01-02 15:04:05")) | |
| ladder.Deleted = false | |
| ladder.Available = true | |
| if err := db.Collection("Ladder").Save(&ladder); err != nil { | |
| if vErr, ok := err.(*bongo.ValidationError); ok { | |
| fmt.Println("Validation errors are:", vErr.Errors) | |
| } else { | |
| fmt.Println("Got a real error:", err.Error()) | |
| } | |
| return ladder, err | |
| } | |
| return ladder, nil | |
| } | |
| // servicce | |
| // LadderService struct used to ladder service | |
| type LadderService struct { | |
| ID string | |
| Name string | |
| Kind string | |
| UserID string | |
| LivepeerID string | |
| Profiles models.Profiles | |
| PageNum int | |
| PageSize int | |
| UpdatedAt string | |
| CreateddAt string | |
| } | |
| // Add func used to add new ladder | |
| func (u *LadderService) Add() (map[string]interface{}, error) { | |
| ladder, err := models.AddLadder(u.Name, u.Kind, u.UserID, u.LivepeerID, u.Profiles) | |
| return ladder.ToJSON(), err | |
| } | |
| // router | |
| // AddLadderForm form used to bind ladder informations | |
| type AddLadderForm struct { | |
| Name string `form:"name"` | |
| Kind string `form:"kind"` | |
| UserID string `form:"userID"` | |
| LivepeerID string `form:"livepeerID"` | |
| Profiles models.Profiles `form:"profiles"` | |
| } | |
| // AddLadder godoc | |
| // @Produce json | |
| // @Param email body string true "Email" | |
| // @Param password body string true "Password" | |
| // @Success 200 {object} app.Response | |
| // @Failure 500 {object} app.Response | |
| // @Router /v1/ladders [post] | |
| func AddLadder(c *gin.Context) { | |
| var ( | |
| appG = app.Gin{C: c} | |
| form AddLadderForm | |
| err error | |
| data = map[string]interface{}{} | |
| ) | |
| _, errCode := app.BindAndValid(c, &form) | |
| if errCode != e.SUCCESS { | |
| app.ErrorResponse(c, e.InvalidParams) | |
| } | |
| ladderService := laddersService.LadderService{ | |
| Name: form.Name, | |
| Kind: form.Kind, | |
| UserID: form.UserID, | |
| LivepeerID: form.LivepeerID, | |
| Profiles: form.Profiles, | |
| } | |
| ladder, err := ladderService.Add() | |
| if err != nil { | |
| app.ErrorResponse(c, e.ErrorQueryToDB) | |
| } | |
| data["ladder"] = ladder | |
| appG.Response(http.StatusCreated, e.LadderCreated, 0, "", "", data) | |
| return | |
| } | |
| apiv1.POST("/ladders", v1.AddLadder) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment