diff options
Diffstat (limited to '')
| -rw-r--r-- | backend/controllers/recordController.go | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/backend/controllers/recordController.go b/backend/controllers/recordController.go index 951be41..d141fc3 100644 --- a/backend/controllers/recordController.go +++ b/backend/controllers/recordController.go | |||
| @@ -19,6 +19,18 @@ import ( | |||
| 19 | "google.golang.org/api/drive/v3" | 19 | "google.golang.org/api/drive/v3" |
| 20 | ) | 20 | ) |
| 21 | 21 | ||
| 22 | type RecordRequest struct { | ||
| 23 | HostDemo *multipart.FileHeader `json:"host_demo" form:"host_demo" binding:"required" swaggerignore:"true"` | ||
| 24 | PartnerDemo *multipart.FileHeader `json:"partner_demo" form:"partner_demo" swaggerignore:"true"` | ||
| 25 | IsPartnerOrange bool `json:"is_partner_orange" form:"is_partner_orange"` | ||
| 26 | PartnerID string `json:"partner_id" form:"partner_id"` | ||
| 27 | } | ||
| 28 | |||
| 29 | type RecordResponse struct { | ||
| 30 | ScoreCount int `json:"score_count"` | ||
| 31 | ScoreTime int `json:"score_time"` | ||
| 32 | } | ||
| 33 | |||
| 22 | // POST Record | 34 | // POST Record |
| 23 | // | 35 | // |
| 24 | // @Description Post record with demo of a specific map. | 36 | // @Description Post record with demo of a specific map. |
| @@ -31,7 +43,7 @@ import ( | |||
| 31 | // @Param partner_demo formData file false "Partner Demo" | 43 | // @Param partner_demo formData file false "Partner Demo" |
| 32 | // @Param is_partner_orange formData boolean false "Is Partner Orange" | 44 | // @Param is_partner_orange formData boolean false "Is Partner Orange" |
| 33 | // @Param partner_id formData string false "Partner ID" | 45 | // @Param partner_id formData string false "Partner ID" |
| 34 | // @Success 200 {object} models.Response{data=models.RecordResponse} | 46 | // @Success 200 {object} models.Response{data=RecordResponse} |
| 35 | // @Failure 400 {object} models.Response | 47 | // @Failure 400 {object} models.Response |
| 36 | // @Failure 401 {object} models.Response | 48 | // @Failure 401 {object} models.Response |
| 37 | // @Router /maps/{id}/record [post] | 49 | // @Router /maps/{id}/record [post] |
| @@ -61,7 +73,7 @@ func CreateRecordWithDemo(c *gin.Context) { | |||
| 61 | isCoop = true | 73 | isCoop = true |
| 62 | } | 74 | } |
| 63 | // Get record request | 75 | // Get record request |
| 64 | var record models.RecordRequest | 76 | var record RecordRequest |
| 65 | if err := c.ShouldBind(&record); err != nil { | 77 | if err := c.ShouldBind(&record); err != nil { |
| 66 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 78 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| 67 | return | 79 | return |
| @@ -183,7 +195,7 @@ func CreateRecordWithDemo(c *gin.Context) { | |||
| 183 | c.JSON(http.StatusOK, models.Response{ | 195 | c.JSON(http.StatusOK, models.Response{ |
| 184 | Success: true, | 196 | Success: true, |
| 185 | Message: "Successfully created record.", | 197 | Message: "Successfully created record.", |
| 186 | Data: models.RecordResponse{ScoreCount: hostDemoScoreCount, ScoreTime: hostDemoScoreTime}, | 198 | Data: RecordResponse{ScoreCount: hostDemoScoreCount, ScoreTime: hostDemoScoreTime}, |
| 187 | }) | 199 | }) |
| 188 | } | 200 | } |
| 189 | 201 | ||
| @@ -253,6 +265,7 @@ func serviceAccount() *http.Client { | |||
| 253 | return client | 265 | return client |
| 254 | } | 266 | } |
| 255 | 267 | ||
| 268 | // Create Gdrive file | ||
| 256 | func createFile(service *drive.Service, name string, mimeType string, content io.Reader, parentId string) (*drive.File, error) { | 269 | func createFile(service *drive.Service, name string, mimeType string, content io.Reader, parentId string) (*drive.File, error) { |
| 257 | f := &drive.File{ | 270 | f := &drive.File{ |
| 258 | MimeType: mimeType, | 271 | MimeType: mimeType, |
| @@ -269,6 +282,7 @@ func createFile(service *drive.Service, name string, mimeType string, content io | |||
| 269 | return file, nil | 282 | return file, nil |
| 270 | } | 283 | } |
| 271 | 284 | ||
| 285 | // Delete Gdrive file | ||
| 272 | func deleteFile(service *drive.Service, fileId string) { | 286 | func deleteFile(service *drive.Service, fileId string) { |
| 273 | service.Files.Delete(fileId) | 287 | service.Files.Delete(fileId) |
| 274 | } | 288 | } |