From 55c8c739b02ee896c41d5a76c332a89b45a297df Mon Sep 17 00:00:00 2001 From: Deepak Date: Mon, 11 Jan 2021 20:38:11 -0600 Subject: [PATCH] fmt A --- models/user_test.go | 2 +- routes/users.go | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 routes/users.go diff --git a/models/user_test.go b/models/user_test.go index bab25c6..bcd2678 100644 --- a/models/user_test.go +++ b/models/user_test.go @@ -1,9 +1,9 @@ package models_test import ( + "fmt" "gitea.deepak.science/deepak/gogmagog/models" "github.com/stretchr/testify/assert" - "fmt" "testing" ) diff --git a/routes/users.go b/routes/users.go new file mode 100644 index 0000000..3c3ca77 --- /dev/null +++ b/routes/users.go @@ -0,0 +1,40 @@ +package routes + +import ( + "encoding/json" + "gitea.deepak.science/deepak/gogmagog/models" + "github.com/go-chi/chi" + "net/http" + "strconv" +) + +func newUserRouter(m *models.Model) http.Handler { + router := chi.NewRouter() + // router.Post("/", postUserFunc(m)) + router.Get("/{userid}", getUserByIDFunc(m)) + return router +} + +func getUserByIDFunc(m *models.Model) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + id, err := strconv.Atoi(chi.URLParam(r, "userid")) + if err != nil { + notFoundHandler(w, r) + return + } + user, err := m.User(id) + if err != nil { + if models.IsNotFoundError(err) { + notFoundHandler(w, r) + return + } + serverError(w, err) + return + + } + w.Header().Add("Content-Type", "application/json") + if err := json.NewEncoder(w).Encode(user); err != nil { + serverError(w, err) + } + } +}