icon_handlers.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. package api // import "miniflux.app/v2/internal/api"
  4. import (
  5. "errors"
  6. "net/http"
  7. "miniflux.app/v2/internal/http/request"
  8. "miniflux.app/v2/internal/http/response"
  9. )
  10. func (h *handler) getIconByFeedIDHandler(w http.ResponseWriter, r *http.Request) {
  11. feedID := request.RouteInt64Param(r, "feedID")
  12. if feedID == 0 {
  13. response.JSONBadRequest(w, r, errors.New("invalid feed ID"))
  14. return
  15. }
  16. icon, err := h.store.IconByFeedID(request.UserID(r), feedID)
  17. if err != nil {
  18. response.JSONServerError(w, r, err)
  19. return
  20. }
  21. if icon == nil {
  22. response.JSONNotFound(w, r)
  23. return
  24. }
  25. response.JSON(w, r, &feedIconResponse{
  26. ID: icon.ID,
  27. MimeType: icon.MimeType,
  28. Data: icon.DataURL(),
  29. })
  30. }
  31. func (h *handler) getIconByIconIDHandler(w http.ResponseWriter, r *http.Request) {
  32. iconID := request.RouteInt64Param(r, "iconID")
  33. if iconID == 0 {
  34. response.JSONBadRequest(w, r, errors.New("invalid icon ID"))
  35. return
  36. }
  37. icon, err := h.store.IconByID(iconID)
  38. if err != nil {
  39. response.JSONServerError(w, r, err)
  40. return
  41. }
  42. if icon == nil {
  43. response.JSONNotFound(w, r)
  44. return
  45. }
  46. response.JSON(w, r, &feedIconResponse{
  47. ID: icon.ID,
  48. MimeType: icon.MimeType,
  49. Data: icon.DataURL(),
  50. })
  51. }