isl-api/routes/PowerItemRoutes.go
Annika Merris b5ea01729b Added JWT Auth
Wrote my own JWT auth middleware, since I could not get the go-chi middleware to accept a JWKS instead of a certificate.
2024-02-10 17:18:22 -05:00

29 lines
704 B
Go

package routes
import (
"forgejo.merr.is/annika/isl-api/controllers"
"forgejo.merr.is/annika/isl-api/middlewares"
"github.com/go-chi/chi/v5"
)
func SetupPowerItemRoutes(c controllers.PowerItemController, tokenAuth *middlewares.JWTAuth) *chi.Mux {
r := chi.NewRouter()
r.Get("/", c.GetAll)
r.Get("/asMap", c.GetAllAsMap)
r.Get("/byType/{type:[1-3]}", c.GetAllByType)
r.Get("/byType/{type:[1-3]}/asMap", c.GetAllByTypeAsMap)
ar := chi.NewRouter()
ar.Group(func(r chi.Router) {
r.Use(tokenAuth.Verifier())
r.Use(tokenAuth.Authenticator())
r.Use(tokenAuth.AuthorizeRoles([]string{"add_item"}))
r.Post("/", c.Add)
r.Post("/multiple", c.AddMultiple)
})
r.Mount("/", ar)
return r
}