/
number.go
44 lines (37 loc) · 1.08 KB
/
number.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package controllers
import (
"github.com/labstack/echo"
"github.com/michaelbui/bingo-backend/models"
"net/http"
)
type NumberController struct {
}
var (
numberController *NumberController
)
func Number() *NumberController {
if numberController == nil {
numberController = &NumberController{}
}
return numberController
}
func (n *NumberController) List(context echo.Context) error {
if !models.Game().IsLocked() {
return context.JSON(http.StatusBadRequest, JsonResponse{Code: 1, Message: "Game Not Started"})
}
timestamps, values := models.Number().List()
return context.JSON(http.StatusOK, JsonResponse{Data: map[string]interface{}{
"timestamps": timestamps,
"values": values,
}})
}
func (n *NumberController) Next(context echo.Context) error {
if !models.Game().IsLocked() {
return context.JSON(http.StatusBadRequest, JsonResponse{Code: 2, Message: "Game Not Started"})
}
number := models.Number().Next()
if number == 0 {
return context.JSON(http.StatusBadRequest, JsonResponse{Code: 1, Data: number})
}
return context.JSON(http.StatusOK, JsonResponse{Data: number})
}