mirror of
https://forgejo.merr.is/annika/isl-api.git
synced 2025-12-11 11:12:06 -05:00
Wrote my own JWT auth middleware, since I could not get the go-chi middleware to accept a JWKS instead of a certificate.
29 lines
704 B
Go
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
|
|
}
|