/
order_controller.go
85 lines (69 loc) · 1.82 KB
/
order_controller.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package order
import (
"encoding/json"
"strconv"
"strings"
"github.com/adiet95/go-order-api/src/database/models"
"github.com/adiet95/go-order-api/src/interfaces"
"github.com/adiet95/go-order-api/src/libs"
"github.com/gin-gonic/gin"
)
type order_ctrl struct {
svc interfaces.OrderService
}
func NewCtrl(reps interfaces.OrderService) *order_ctrl {
return &order_ctrl{svc: reps}
}
func (re *order_ctrl) GetAll(c *gin.Context) {
v := c.Request.URL.Query().Get("limit")
limit, _ := strconv.Atoi(v)
val := c.Request.URL.Query().Get("offset")
offset, _ := strconv.Atoi(val)
re.svc.GetAll(limit, offset).Send(c)
}
func (re *order_ctrl) Add(c *gin.Context) {
claim_user, exist := c.Get("email")
if !exist {
libs.New("claim user is not exist", 400, true)
c.Abort()
}
var data models.Order
err := json.NewDecoder(c.Request.Body).Decode(&data)
if err != nil {
libs.New(err.Error(), 400, true)
c.Abort()
}
re.svc.Add(&data, claim_user.(string)).Send(c)
}
func (re *order_ctrl) Update(c *gin.Context) {
claim_user, exist := c.Get("email")
if !exist {
libs.New("claim user is not exist", 400, true)
c.Abort()
}
email := claim_user.(string)
val := c.Request.URL.Query().Get("id")
v, _ := strconv.Atoi(val)
var datas models.Order
err := json.NewDecoder(c.Request.Body).Decode(&datas)
if err != nil {
libs.New(err.Error(), 400, true)
c.Abort()
}
re.svc.Update(&datas, v, email).Send(c)
}
func (re *order_ctrl) Delete(c *gin.Context) {
val := c.Request.URL.Query().Get("id")
v, _ := strconv.Atoi(val)
re.svc.Delete(v).Send(c)
}
func (re *order_ctrl) Search(c *gin.Context) {
val := c.Request.URL.Query().Get("name")
v := strings.ToLower(val)
re.svc.Search(v).Send(c)
}
func (re *order_ctrl) SearchId(c *gin.Context) {
val := c.Request.URL.Query().Get("id")
v, _ := strconv.Atoi(val)
re.svc.SearchId(v).Send(c)
}