From f37bcd2467d0f8874b059cda10ee0a27f62fd671 Mon Sep 17 00:00:00 2001 From: Dean Sheather <dean@deansheather.com> Date: Sun, 24 Feb 2019 05:48:26 +1000 Subject: [PATCH] add /users/me route --- lib/routes/me.go | 24 ++++++++++++++++++++++++ main.go | 1 + 2 files changed, 25 insertions(+) create mode 100644 lib/routes/me.go diff --git a/lib/routes/me.go b/lib/routes/me.go new file mode 100644 index 0000000..3ce5fe4 --- /dev/null +++ b/lib/routes/me.go @@ -0,0 +1,24 @@ +package routes + +import ( + "net/http" + + "owo.codes/whats-this/api/lib/apierrors" + "owo.codes/whats-this/api/lib/middleware" + + "github.com/go-chi/render" +) + +// Me handles /users/me requests. +func Me(w http.ResponseWriter, r *http.Request) { + // Only authorized users can use this route + user := middleware.GetAuthorizedUser(r) + if user.ID == "" || user.IsBlocked { + panic(apierrors.Unauthorized) + } + + // Return response + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + render.JSON(w, r, user) +} diff --git a/main.go b/main.go index 298798c..e10090f 100644 --- a/main.go +++ b/main.go @@ -145,6 +145,7 @@ func main() { r.Post("/upload/pomf", routes.UploadPomf(false)) r.Post("/upload/pomf/associated", routes.UploadPomf(true)) r.Post("/users", routes.CreateUser) + r.Get("/users/me", routes.Me) // MethodNotAllowed handler r.MethodNotAllowed(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { -- GitLab