package routes import ( "encoding/json" "gitea.deepak.science/deepak/gogmagog/models" "gitea.deepak.science/deepak/gogmagog/tokens" "github.com/go-chi/chi" "net/http" ) // NewRouter returns a router powered by the provided model. func NewRouter(m *models.Model, tok tokens.Toker) http.Handler { router := chi.NewRouter() router.MethodNotAllowed(methodNotAllowedHandler) router.NotFound(notFoundHandler) router.Group(func(r chi.Router) { r.Use(tok.Authenticator) r.Mount("/actions", NewActionRouter(m)) r.Mount("/plans", NewPlanRouter(m)) r.Mount("/me", NewCurrentUserRouter(m)) }) router.Mount("/auth", newAuthRouter(m, tok)) router.Mount("/health", newHealthRouter(m)) router.Get("/ping", ping) return router } func ping(w http.ResponseWriter, r *http.Request) { // A very simple health check. w.Header().Add("Content-Type", "application/json") w.WriteHeader(http.StatusOK) if err := json.NewEncoder(w).Encode(map[string]string{"ping": "pong"}); err != nil { serverError(w, err) } }