8
8
"strconv"
9
9
10
10
"github.com/labstack/echo/v4"
11
+
11
12
"github.com/ystv/web-api/services/clapper"
13
+ "github.com/ystv/web-api/utils"
12
14
)
13
15
14
16
// ListMonth returns all events for a month.
@@ -26,16 +28,19 @@ func (r *Repos) ListMonth(c echo.Context) error {
26
28
if err != nil {
27
29
return echo .NewHTTPError (http .StatusBadRequest , "Year incorrect, format /yyyy/mm" )
28
30
}
31
+
29
32
month , err := strconv .Atoi (c .Param ("month" ))
30
33
if err != nil {
31
34
return echo .NewHTTPError (http .StatusBadRequest , "Month incorrect, format /yyyy/mm" )
32
35
}
36
+
33
37
e , err := r .event .ListMonth (c .Request ().Context (), year , month )
34
38
if err != nil {
35
39
err = fmt .Errorf ("ListMonth failed: %w" , err )
36
40
return echo .NewHTTPError (http .StatusBadRequest , err )
37
41
}
38
- return c .JSON (http .StatusOK , e )
42
+
43
+ return c .JSON (http .StatusOK , utils .NonNil (e ))
39
44
}
40
45
41
46
// GetEvent handles getting all signups and roles for a given event
@@ -52,11 +57,13 @@ func (r *Repos) GetEvent(c echo.Context) error {
52
57
if err != nil {
53
58
return echo .NewHTTPError (http .StatusBadRequest , "Invalid event ID" )
54
59
}
60
+
55
61
e , err := r .event .Get (c .Request ().Context (), eventID )
56
62
if err != nil {
57
63
err = fmt .Errorf ("GetEvent failed: %w" , err )
58
64
return echo .NewHTTPError (http .StatusInternalServerError , err )
59
65
}
66
+
60
67
return c .JSON (http .StatusOK , e )
61
68
}
62
69
@@ -71,22 +78,26 @@ func (r *Repos) GetEvent(c echo.Context) error {
71
78
// @Success 201 body int "Event ID"
72
79
// @Router /v1/internal/clapper/event [post]
73
80
func (r * Repos ) NewEvent (c echo.Context ) error {
74
- e := clapper.NewEvent {}
81
+ var e clapper.NewEvent
82
+
75
83
err := c .Bind (& e )
76
84
if err != nil {
77
85
err = fmt .Errorf ("NewEvent: failed to bind to request json: %w" , err )
78
86
return echo .NewHTTPError (http .StatusBadRequest , err )
79
87
}
88
+
80
89
p , err := r .access .GetToken (c .Request ())
81
90
if err != nil {
82
91
err = fmt .Errorf ("NewEvent: failed to get token: %w" , err )
83
92
return echo .NewHTTPError (http .StatusInternalServerError , err )
84
93
}
94
+
85
95
eventID , err := r .event .New (c .Request ().Context (), & e , p .UserID )
86
96
if err != nil {
87
97
err = fmt .Errorf ("NewEvent: failed to insert event: %w" , err )
88
98
return echo .NewHTTPError (http .StatusInternalServerError , err )
89
99
}
100
+
90
101
return c .JSON (http .StatusCreated , eventID )
91
102
}
92
103
@@ -101,17 +112,20 @@ func (r *Repos) NewEvent(c echo.Context) error {
101
112
// @Success 200
102
113
// @Router /v1/internal/clapper/event [put]
103
114
func (r * Repos ) UpdateEvent (c echo.Context ) error {
104
- e := clapper.Event {}
115
+ var e clapper.Event
116
+
105
117
err := c .Bind (& e )
106
118
if err != nil {
107
119
err = fmt .Errorf ("UpdateEvent: failed to bind to request json: %w" , err )
108
120
return echo .NewHTTPError (http .StatusBadRequest , err )
109
121
}
122
+
110
123
p , err := r .access .GetToken (c .Request ())
111
124
if err != nil {
112
125
err = fmt .Errorf ("UpdateEvent: failed to get token: %w" , err )
113
126
return echo .NewHTTPError (http .StatusInternalServerError , err )
114
127
}
128
+
115
129
err = r .event .Update (c .Request ().Context (), & e , p .UserID )
116
130
if err != nil {
117
131
if errors .Is (err , sql .ErrNoRows ) {
@@ -120,6 +134,7 @@ func (r *Repos) UpdateEvent(c echo.Context) error {
120
134
err = fmt .Errorf ("UpdateEvent: failed to update: %w" , err )
121
135
return echo .NewHTTPError (http .StatusInternalServerError , err )
122
136
}
137
+
123
138
return c .NoContent (http .StatusOK )
124
139
}
125
140
@@ -138,9 +153,11 @@ func (r *Repos) DeleteEvent(c echo.Context) error {
138
153
if err != nil {
139
154
return echo .NewHTTPError (http .StatusBadRequest , "Invalid event ID" )
140
155
}
156
+
141
157
err = r .event .Delete (c .Request ().Context (), eventID )
142
158
if err != nil {
143
159
return echo .NewHTTPError (http .StatusInternalServerError , fmt .Errorf ("failed to delete event: %w" , err ))
144
160
}
161
+
145
162
return c .NoContent (http .StatusOK )
146
163
}
0 commit comments