Add refreshAllFeeds to the API
Adds refreshAllFeeds to the API, following the suggestion given in the comments of #359.
This commit is contained in:
parent
7389c79c52
commit
7b32f59281
4 changed files with 22 additions and 3 deletions
|
@ -7,13 +7,14 @@ package api // import "miniflux.app/api"
|
||||||
import (
|
import (
|
||||||
"miniflux.app/reader/feed"
|
"miniflux.app/reader/feed"
|
||||||
"miniflux.app/storage"
|
"miniflux.app/storage"
|
||||||
|
"miniflux.app/worker"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Serve declares API routes for the application.
|
// Serve declares API routes for the application.
|
||||||
func Serve(router *mux.Router, store *storage.Storage, feedHandler *feed.Handler) {
|
func Serve(router *mux.Router, store *storage.Storage, pool *worker.Pool, feedHandler *feed.Handler) {
|
||||||
handler := &handler{store, feedHandler}
|
handler := &handler{store, pool, feedHandler}
|
||||||
|
|
||||||
sr := router.PathPrefix("/v1").Subrouter()
|
sr := router.PathPrefix("/v1").Subrouter()
|
||||||
sr.Use(newMiddleware(store).serve)
|
sr.Use(newMiddleware(store).serve)
|
||||||
|
@ -31,6 +32,7 @@ func Serve(router *mux.Router, store *storage.Storage, feedHandler *feed.Handler
|
||||||
sr.HandleFunc("/discover", handler.getSubscriptions).Methods("POST")
|
sr.HandleFunc("/discover", handler.getSubscriptions).Methods("POST")
|
||||||
sr.HandleFunc("/feeds", handler.createFeed).Methods("POST")
|
sr.HandleFunc("/feeds", handler.createFeed).Methods("POST")
|
||||||
sr.HandleFunc("/feeds", handler.getFeeds).Methods("GET")
|
sr.HandleFunc("/feeds", handler.getFeeds).Methods("GET")
|
||||||
|
sr.HandleFunc("/feeds/refresh", handler.refreshAllFeeds).Methods("PUT")
|
||||||
sr.HandleFunc("/feeds/{feedID}/refresh", handler.refreshFeed).Methods("PUT")
|
sr.HandleFunc("/feeds/{feedID}/refresh", handler.refreshFeed).Methods("PUT")
|
||||||
sr.HandleFunc("/feeds/{feedID}", handler.getFeed).Methods("GET")
|
sr.HandleFunc("/feeds/{feedID}", handler.getFeed).Methods("GET")
|
||||||
sr.HandleFunc("/feeds/{feedID}", handler.updateFeed).Methods("PUT")
|
sr.HandleFunc("/feeds/{feedID}", handler.updateFeed).Methods("PUT")
|
||||||
|
|
15
api/feed.go
15
api/feed.go
|
@ -82,6 +82,21 @@ func (h *handler) refreshFeed(w http.ResponseWriter, r *http.Request) {
|
||||||
json.NoContent(w, r)
|
json.NoContent(w, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *handler) refreshAllFeeds(w http.ResponseWriter, r *http.Request) {
|
||||||
|
userID := request.UserID(r)
|
||||||
|
jobs, err := h.store.NewUserBatch(userID, h.store.CountFeeds(userID))
|
||||||
|
if err != nil {
|
||||||
|
json.ServerError(w, r, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
h.pool.Push(jobs)
|
||||||
|
}()
|
||||||
|
|
||||||
|
json.NoContent(w, r)
|
||||||
|
}
|
||||||
|
|
||||||
func (h *handler) updateFeed(w http.ResponseWriter, r *http.Request) {
|
func (h *handler) updateFeed(w http.ResponseWriter, r *http.Request) {
|
||||||
feedID := request.RouteInt64Param(r, "feedID")
|
feedID := request.RouteInt64Param(r, "feedID")
|
||||||
feedChanges, err := decodeFeedModificationPayload(r.Body)
|
feedChanges, err := decodeFeedModificationPayload(r.Body)
|
||||||
|
|
|
@ -7,9 +7,11 @@ package api // import "miniflux.app/api"
|
||||||
import (
|
import (
|
||||||
"miniflux.app/reader/feed"
|
"miniflux.app/reader/feed"
|
||||||
"miniflux.app/storage"
|
"miniflux.app/storage"
|
||||||
|
"miniflux.app/worker"
|
||||||
)
|
)
|
||||||
|
|
||||||
type handler struct {
|
type handler struct {
|
||||||
store *storage.Storage
|
store *storage.Storage
|
||||||
|
pool *worker.Pool
|
||||||
feedHandler *feed.Handler
|
feedHandler *feed.Handler
|
||||||
}
|
}
|
||||||
|
|
|
@ -166,7 +166,7 @@ func setupHandler(store *storage.Storage, feedHandler *feed.Handler, pool *worke
|
||||||
router.Use(middleware)
|
router.Use(middleware)
|
||||||
|
|
||||||
fever.Serve(router, store)
|
fever.Serve(router, store)
|
||||||
api.Serve(router, store, feedHandler)
|
api.Serve(router, store, pool, feedHandler)
|
||||||
ui.Serve(router, store, pool, feedHandler)
|
ui.Serve(router, store, pool, feedHandler)
|
||||||
|
|
||||||
router.HandleFunc("/healthcheck", func(w http.ResponseWriter, r *http.Request) {
|
router.HandleFunc("/healthcheck", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
Loading…
Reference in a new issue