Signed-off-by: brookjeynes me@brookjeynes.dev
+31
-26
internal/server/handlers/resource.go
+31
-26
internal/server/handlers/resource.go
···
3
3
import (
4
4
"errors"
5
5
"fmt"
6
-
"log"
7
6
"net/http"
8
7
"time"
9
8
···
63
62
}
64
63
65
64
func (h *Handler) HandleNewResourcePage(w http.ResponseWriter, r *http.Request) {
65
+
l := h.Logger.With("handler", "HandleNewResourcePage")
66
+
66
67
user, err := bsky.GetUserWithBskyProfile(h.Oauth, r)
67
68
if err != nil {
68
-
log.Println("failed to get logged-in user:", err)
69
+
l.Error("failed to get logged-in user", "err", err)
69
70
htmx.HxRedirect(w, "/login")
70
71
return
71
72
}
···
79
80
case http.MethodPost:
80
81
client, err := h.Oauth.AuthorizedClient(r)
81
82
if err != nil {
82
-
log.Println("failed to get authorized client:", err)
83
+
l.Error("failed to get authorized client", "err", err)
83
84
htmx.HxRedirect(w, "/login")
84
85
return
85
86
}
86
87
87
88
newResource, err := parseResourceForm(r)
88
89
if err != nil {
89
-
log.Println("invalid resource form:", err)
90
+
l.Error("invalid resource form", "err", err)
90
91
htmx.HxError(w, http.StatusBadRequest, "Failed to create resource, ensure all fields contain valid data.")
91
92
return
92
93
}
···
95
96
newResource.CreatedAt = time.Now().UTC()
96
97
97
98
if err := db.ValidateResource(newResource); err != nil {
98
-
log.Println("invalid resource definition:", err)
99
+
l.Error("invalid resource definition", "err", err)
99
100
switch {
100
101
case errors.Is(err, db.ErrResourceTitleEmpty):
101
102
htmx.HxError(w, http.StatusBadRequest, "Resource must have a title.")
···
118
119
if newResource.Link != nil {
119
120
linkCheckResult := google.CheckResourceLinkSafety(*newResource.Link)
120
121
if linkCheckResult.Err != nil {
121
-
log.Println("invalid resource definition:", linkCheckResult.Err)
122
+
l.Error("invalid resource definition", "err", linkCheckResult.Err)
122
123
switch {
123
124
case errors.Is(linkCheckResult.Err, google.ErrResourceLinkSketchy):
124
125
if !h.Config.Core.Dev {
···
186
187
},
187
188
})
188
189
if err != nil {
189
-
log.Println("failed to create resource record:", err)
190
+
l.Error("failed to create resource record", "err", err)
190
191
htmx.HxError(w, http.StatusInternalServerError, "Failed to create resource, try again later.")
191
192
return
192
193
}
193
194
194
195
err = SavePendingCreate(h, w, r, PendingResourceCreation, newResource)
195
196
if err != nil {
196
-
log.Printf("failed to save yoten-session to add pending resource creation: %v", err)
197
+
l.Error("failed to save yoten-session to add pending resource creation", "err", err)
197
198
}
198
199
199
200
if !h.Config.Core.Dev {
···
209
210
Set("link_provided", newResource.Link != nil),
210
211
})
211
212
if err != nil {
212
-
log.Println("failed to enqueue posthog event:", err)
213
+
l.Error("failed to enqueue posthog event", "err", err)
213
214
}
214
215
}
215
216
···
218
219
}
219
220
220
221
func (h *Handler) HandleDeleteResource(w http.ResponseWriter, r *http.Request) {
222
+
l := h.Logger.With("handler", "HandleDeleteResource")
223
+
221
224
user := h.Oauth.GetUser(r)
222
225
if user == nil {
223
-
log.Println("failed to get logged-in user")
226
+
l.Error("failed to get logged-in user")
224
227
htmx.HxRedirect(w, "/login")
225
228
return
226
229
}
227
230
client, err := h.Oauth.AuthorizedClient(r)
228
231
if err != nil {
229
-
log.Println("failed to get authorized client:", err)
232
+
l.Error("failed to get authorized client", "err", err)
230
233
htmx.HxError(w, http.StatusUnauthorized, "Failed to delete resource, try again later.")
231
234
return
232
235
}
···
236
239
rkey := chi.URLParam(r, "rkey")
237
240
resource, err := db.GetResourceByRkey(h.Db, user.Did, rkey)
238
241
if err != nil {
239
-
log.Println("failed to get resource from db:", err)
242
+
l.Error("failed to get resource from db", "err", err)
240
243
htmx.HxError(w, http.StatusInternalServerError, "Failed to delete resource, try again later.")
241
244
return
242
245
}
243
246
244
247
if user.Did != resource.Did {
245
-
log.Printf("user '%s' does not own record '%s'", user.Did, rkey)
248
+
l.Error("user does not own record", "did", user.Did, "resourceDid", resource.Did)
246
249
htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to delete this resource.")
247
250
return
248
251
}
···
253
256
Rkey: resource.Rkey,
254
257
})
255
258
if err != nil {
256
-
log.Println("failed to delete resource from PDS:", err)
259
+
l.Error("failed to delete resource from PDS", "err", err)
257
260
htmx.HxError(w, http.StatusInternalServerError, "Failed to delete resource, try again later.")
258
261
return
259
262
}
260
263
261
264
err = SavePendingDelete(h, w, r, PendingResourceDeletion, resource)
262
265
if err != nil {
263
-
log.Printf("failed to save yoten-session to add pending resource deletion: %v", err)
266
+
l.Error("failed to save yoten-session to add pending resource deletion", "err", err)
264
267
}
265
268
266
269
if !h.Config.Core.Dev {
···
272
275
Set("resource_type", resource.Type),
273
276
})
274
277
if err != nil {
275
-
log.Println("failed to enqueue posthog event:", err)
278
+
l.Error("failed to enqueue posthog event", "err", err)
276
279
}
277
280
}
278
281
···
281
284
}
282
285
283
286
func (h *Handler) HandleEditResourcePage(w http.ResponseWriter, r *http.Request) {
287
+
l := h.Logger.With("handler", "HandleEditResourcePage")
288
+
284
289
user, err := bsky.GetUserWithBskyProfile(h.Oauth, r)
285
290
if err != nil {
286
-
log.Println("failed to get logged-in user:", err)
291
+
l.Error("failed to get logged-in user", "err", err)
287
292
htmx.HxRedirect(w, "/login")
288
293
return
289
294
}
···
291
296
rkey := chi.URLParam(r, "rkey")
292
297
resource, err := db.GetResourceByRkey(h.Db, user.Did, rkey)
293
298
if err != nil {
294
-
log.Println("failed to get resource from db:", err)
299
+
l.Error("failed to get resource from db", "err", err)
295
300
htmx.HxError(w, http.StatusInternalServerError, "Failed to update resource, try again later.")
296
301
return
297
302
}
298
303
299
304
if user.Did != resource.Did {
300
-
log.Printf("user '%s' does not own record '%s'", user.Did, rkey)
305
+
l.Error("user does not own record", "did", user.Did, "resourceDid", resource.Did)
301
306
htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to edit this resource.")
302
307
return
303
308
}
···
312
317
case http.MethodPost:
313
318
client, err := h.Oauth.AuthorizedClient(r)
314
319
if err != nil {
315
-
log.Println("failed to get authorized client:", err)
320
+
l.Error("failed to get authorized client", "err", err)
316
321
htmx.HxRedirect(w, "/login")
317
322
return
318
323
}
319
324
320
325
updatedResource, err := parseResourceForm(r)
321
326
if err != nil {
322
-
log.Println("invalid resource form:", err)
327
+
l.Error("invalid resource form", "err", err)
323
328
htmx.HxError(w, http.StatusBadRequest, "Failed to create resource, ensure all fields contain valid data.")
324
329
return
325
330
}
···
328
333
updatedResource.CreatedAt = resource.CreatedAt
329
334
330
335
if err := db.ValidateResource(updatedResource); err != nil {
331
-
log.Println("invalid resource definition:", err)
336
+
l.Error("invalid resource definition", "err", err)
332
337
switch {
333
338
case errors.Is(err, db.ErrResourceTitleEmpty):
334
339
htmx.HxError(w, http.StatusBadRequest, "Resource must have a title.")
···
352
357
if updatedResource.Link != nil && (resource.Link == nil || *updatedResource.Link != *resource.Link) {
353
358
linkCheckResult := google.CheckResourceLinkSafety(*updatedResource.Link)
354
359
if linkCheckResult.Err != nil {
355
-
log.Println("invalid resource definition:", linkCheckResult.Err)
360
+
l.Error("invalid resource link", "link", resource.Link, "threatType", linkCheckResult.ThreatType, "err", linkCheckResult.Err)
356
361
switch {
357
362
case errors.Is(linkCheckResult.Err, google.ErrResourceLinkSketchy):
358
363
if !h.Config.Core.Dev {
···
427
432
SwapRecord: cid,
428
433
})
429
434
if err != nil {
430
-
log.Println("failed to update resource record:", err)
435
+
l.Error("failed to update resource record", "err", err)
431
436
htmx.HxError(w, http.StatusInternalServerError, "Failed to update resource, try again later.")
432
437
return
433
438
}
434
439
435
440
err = SavePendingUpdate(h, w, r, PendingResourceUpdates, updatedResource)
436
441
if err != nil {
437
-
log.Printf("failed to save yoten-session to add pending resource updates: %v", err)
442
+
l.Error("failed to save yoten-session to add pending resource updates", "err", err)
438
443
}
439
444
440
445
if !h.Config.Core.Dev {
···
450
455
Set("link_provided", updatedResource.Link != nil),
451
456
})
452
457
if err != nil {
453
-
log.Println("failed to enqueue posthog event:", err)
458
+
l.Error("failed to enqueue posthog event", "err", err)
454
459
}
455
460
}
456
461
History
1 round
0 comments
brookjeynes.dev
submitted
#0
1 commit
expand
collapse
feat(handlers/resource): use slogger
Signed-off-by: brookjeynes <me@brookjeynes.dev>
expand 0 comments
pull request successfully merged