@@ -102,19 +102,26 @@ func (api *ApiHandler) feedHandlerFunc(w http.ResponseWriter, r *http.Request) {
102
102
103
103
secret , fromURL := utils .GetSecret (r )
104
104
105
- feedName := strings . Split (r .URL .Path , "/" )[ 3 ]
105
+ feedName , err := feed . FeedNameFromPath (r .URL .Path )
106
106
107
- f , err := feed .GetFeed (api .BasePath , feedName , secret )
107
+ if err != nil {
108
+ utils .CloseWithCodeAndMessage (w , 500 , "Unable to unescape feed name" )
109
+ }
110
+
111
+ f , err := feed .GetFeed (api .BasePath , * feedName , secret )
108
112
109
113
if err != nil {
110
114
yberr := err .(* feed.FeedError )
111
115
if yberr .Code == 404 {
112
- f , err = feed .NewFeed (api .BasePath , feedName )
113
-
116
+ f , err = feed .NewFeed (api .BasePath , * feedName )
117
+ if err != nil {
118
+ yberr := err .(* feed.FeedError )
119
+ utils .CloseWithCodeAndMessage (w , yberr .Code , yberr .Error ())
120
+ }
114
121
http .SetCookie (w , & http.Cookie {
115
122
Name : "Secret" ,
116
123
Value : f .Secret ,
117
- Path : fmt .Sprintf ("/api/feed/%s" , feedName ),
124
+ Path : fmt .Sprintf ("/api/feed/%s" , * feedName ),
118
125
Expires : time .Now ().Add (time .Hour * 24 * 365 * 10 ),
119
126
})
120
127
} else {
@@ -127,7 +134,7 @@ func (api *ApiHandler) feedHandlerFunc(w http.ResponseWriter, r *http.Request) {
127
134
http .SetCookie (w , & http.Cookie {
128
135
Name : "Secret" ,
129
136
Value : f .Secret ,
130
- Path : fmt .Sprintf ("/api/feed/%s" , feedName ),
137
+ Path : fmt .Sprintf ("/api/feed/%s" , * feedName ),
131
138
Expires : time .Now ().Add (time .Hour * 24 * 365 * 10 ),
132
139
})
133
140
}
@@ -144,9 +151,9 @@ func (api *ApiHandler) feedPatchHandlerFunc(w http.ResponseWriter, r *http.Reque
144
151
slog .Default ().WithGroup ("http" ).Debug ("Feed API Set PIN request" , slog .Any ("request" , r ))
145
152
secret , _ := utils .GetSecret (r )
146
153
147
- feedName := strings . Split (r .URL .Path , "/" )[ 3 ]
154
+ feedName , err := feed . FeedNameFromPath (r .URL .Path )
148
155
149
- f , err := feed .GetFeed (api .BasePath , feedName , secret )
156
+ f , err := feed .GetFeed (api .BasePath , * feedName , secret )
150
157
151
158
if err != nil {
152
159
yberr := err .(* feed.FeedError )
@@ -172,9 +179,9 @@ func (api *ApiHandler) feedItemHandlerFunc(w http.ResponseWriter, r *http.Reques
172
179
173
180
secret , _ := utils .GetSecret (r )
174
181
175
- feedName := strings . Split (r .URL .Path , "/" )[ 3 ]
182
+ feedName , err := feed . FeedNameFromPath (r .URL .Path )
176
183
177
- f , err := feed .GetFeed (api .BasePath , feedName , secret )
184
+ f , err := feed .GetFeed (api .BasePath , * feedName , secret )
178
185
179
186
if err != nil {
180
187
yberr := err .(* feed.FeedError )
@@ -205,9 +212,9 @@ func (api *ApiHandler) feedPostHandlerFunc(w http.ResponseWriter, r *http.Reques
205
212
206
213
secret , _ := utils .GetSecret (r )
207
214
208
- feedName := strings . Split (r .URL .Path , "/" )[ 3 ]
215
+ feedName , err := feed . FeedNameFromPath (r .URL .Path )
209
216
210
- f , err := feed .GetFeed (api .BasePath , feedName , secret )
217
+ f , err := feed .GetFeed (api .BasePath , * feedName , secret )
211
218
212
219
if err != nil {
213
220
yberr := err .(* feed.FeedError )
@@ -234,9 +241,9 @@ func (api *ApiHandler) feedItemDeleteHandlerFunc(w http.ResponseWriter, r *http.
234
241
235
242
secret , _ := utils .GetSecret (r )
236
243
237
- feedName := strings . Split (r .URL .Path , "/" )[ 3 ]
244
+ feedName , err := feed . FeedNameFromPath (r .URL .Path )
238
245
239
- f , err := feed .GetFeed (api .BasePath , feedName , secret )
246
+ f , err := feed .GetFeed (api .BasePath , * feedName , secret )
240
247
241
248
if err != nil {
242
249
yberr := err .(* feed.FeedError )
0 commit comments