isl-api/Routes/PowerItemRoutes.go

42 lines
922 B
Go

package Routes
import (
"fmt"
"net/http"
"forgejo.merr.is/annika/isl-api/Controllers"
"github.com/go-chi/chi/v5"
"github.com/moosetheory/jwtauth/v5"
)
func SetupPowerItemRoutes(c Controllers.PowerItemController, tokenAuth *jwtauth.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(jwtauth.Verifier(tokenAuth))
r.Use(jwtauth.Authenticator(tokenAuth))
r.Get("/test", authTest)
r.Post("/", c.Add)
r.Post("/multiple", c.AddMultiple)
})
r.Mount("/", ar)
return r
}
func authTest(w http.ResponseWriter, r *http.Request) {
token, claims, err := jwtauth.FromContext(r.Context())
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", token)
fmt.Printf("%+v\n", claims)
fmt.Fprint(w, "hi")
}