/
order_service.go
79 lines (68 loc) · 1.98 KB
/
order_service.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
package order
import (
"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"
)
type order_service struct {
order_repo interfaces.OrderRepo
}
func NewService(reps interfaces.OrderRepo) *order_service {
return &order_service{reps}
}
func (r *order_service) GetAll(limit, offset int) *libs.Response {
data, err := r.order_repo.FindAll(limit, offset)
if err != nil {
return libs.New(err.Error(), 400, true)
}
return libs.New(data, 200, false)
}
func (re *order_service) Add(data *models.Order, email string) *libs.Response {
findId, err := re.order_repo.GetUserId(email)
if err != nil {
return libs.New(err.Error(), 400, true)
}
data.UserId = findId.UserId
data.User.Email = findId.Email
data.User.FullName = findId.FullName
result, err := re.order_repo.Save(data)
if err != nil {
return libs.New(err.Error(), 400, true)
}
return libs.New(result, 200, false)
}
func (re *order_service) Update(data *models.Order, id int, email string) *libs.Response {
findId, err := re.order_repo.GetUserId(email)
if err != nil {
return libs.New(err.Error(), 400, true)
}
data.UserId = findId.UserId
data.User.Email = findId.Email
data.User.FullName = findId.FullName
res, err := re.order_repo.Update(data, id)
if err != nil {
return libs.New(err.Error(), 400, true)
}
return libs.New(res, 200, false)
}
func (re *order_service) Delete(id int) *libs.Response {
data, err := re.order_repo.Delete(id)
if err != nil {
return libs.New(err.Error(), 400, true)
}
return libs.New(data, 200, false)
}
func (re *order_service) Search(name string) *libs.Response {
data, err := re.order_repo.FindByName(name)
if err != nil {
return libs.New(err.Error(), 400, true)
}
return libs.New(data, 200, false)
}
func (re *order_service) SearchId(id int) *libs.Response {
data, err := re.order_repo.FindById(id)
if err != nil {
return libs.New(err.Error(), 400, true)
}
return libs.New(data, 200, false)
}