Parcourir la source

Add API endpoint to get logged user

Leviathan Jeanis il y a 8 ans
Parent
commit
e81e4f0ac3
2 fichiers modifiés avec 14 ajouts et 1 suppressions
  1. 12 0
      api/user.go
  2. 2 1
      daemon/routes.go

+ 12 - 0
api/user.go

@@ -13,6 +13,18 @@ import (
 	"github.com/miniflux/miniflux/http/response/json"
 )
 
+// CurrentUser is the API handler to retrieve the authenticated user.
+func (c *Controller) CurrentUser(w http.ResponseWriter, r *http.Request) {
+	ctx := context.New(r)
+	user, err := c.store.UserByID(ctx.UserID())
+	if err != nil {
+		json.ServerError(w, err)
+		return
+	}
+
+	json.OK(w, user)
+}
+
 // CreateUser is the API handler to create a new user.
 func (c *Controller) CreateUser(w http.ResponseWriter, r *http.Request) {
 	ctx := context.New(r)

+ 2 - 1
daemon/routes.go

@@ -58,13 +58,14 @@ func routes(cfg *config.Config, store *storage.Storage, feedHandler *feed.Handle
 	apiRouter.HandleFunc("/users/{userID:[0-9]+}", apiController.UpdateUser).Methods("PUT")
 	apiRouter.HandleFunc("/users/{userID:[0-9]+}", apiController.RemoveUser).Methods("DELETE")
 	apiRouter.HandleFunc("/users/{username}", apiController.UserByUsername).Methods("GET")
+	apiRouter.HandleFunc("/me", apiController.CurrentUser).Methods("GET")
 	apiRouter.HandleFunc("/categories", apiController.CreateCategory).Methods("POST")
 	apiRouter.HandleFunc("/categories", apiController.GetCategories).Methods("GET")
 	apiRouter.HandleFunc("/categories/{categoryID}", apiController.UpdateCategory).Methods("PUT")
 	apiRouter.HandleFunc("/categories/{categoryID}", apiController.RemoveCategory).Methods("DELETE")
 	apiRouter.HandleFunc("/discover", apiController.GetSubscriptions).Methods("POST")
 	apiRouter.HandleFunc("/feeds", apiController.CreateFeed).Methods("POST")
-	apiRouter.HandleFunc("/feeds", apiController.GetFeeds).Methods("Get")
+	apiRouter.HandleFunc("/feeds", apiController.GetFeeds).Methods("GET")
 	apiRouter.HandleFunc("/feeds/{feedID}/refresh", apiController.RefreshFeed).Methods("PUT")
 	apiRouter.HandleFunc("/feeds/{feedID}", apiController.GetFeed).Methods("GET")
 	apiRouter.HandleFunc("/feeds/{feedID}", apiController.UpdateFeed).Methods("PUT")