opml.go 965 B

123456789101112131415161718192021222324252627282930313233343536
  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. "net/http"
  6. "miniflux.app/v2/internal/http/request"
  7. "miniflux.app/v2/internal/http/response/json"
  8. "miniflux.app/v2/internal/http/response/xml"
  9. "miniflux.app/v2/internal/reader/opml"
  10. )
  11. func (h *handler) exportFeeds(w http.ResponseWriter, r *http.Request) {
  12. opmlHandler := opml.NewHandler(h.store)
  13. opmlExport, err := opmlHandler.Export(request.UserID(r))
  14. if err != nil {
  15. json.ServerError(w, r, err)
  16. return
  17. }
  18. xml.OK(w, r, opmlExport)
  19. }
  20. func (h *handler) importFeeds(w http.ResponseWriter, r *http.Request) {
  21. opmlHandler := opml.NewHandler(h.store)
  22. err := opmlHandler.Import(request.UserID(r), r.Body)
  23. defer r.Body.Close()
  24. if err != nil {
  25. json.ServerError(w, r, err)
  26. return
  27. }
  28. json.Created(w, r, map[string]string{"message": "Feeds imported successfully"})
  29. }