mirror of
https://forgejo.merr.is/annika/isl-api.git
synced 2025-12-11 14:28:48 -05:00
Switched From httprouter to chi
I believe all functionality works properly
This commit is contained in:
parent
c1231d487a
commit
d4b2d5fefb
9 changed files with 77 additions and 78 deletions
37
main.go
37
main.go
|
|
@ -7,10 +7,12 @@ import (
|
|||
"net/http"
|
||||
|
||||
"forgejo.merr.is/annika/isl-api/Controllers"
|
||||
routes "forgejo.merr.is/annika/isl-api/Routes"
|
||||
"forgejo.merr.is/annika/isl-api/Services"
|
||||
"forgejo.merr.is/annika/isl-api/sql/powerItem"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/go-chi/cors"
|
||||
"github.com/jackc/pgx/v4/pgxpool"
|
||||
"github.com/julienschmidt/httprouter"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
|
|
@ -24,8 +26,6 @@ func main() {
|
|||
deps := dependencies{}
|
||||
deps.initializeDependencies()
|
||||
|
||||
deps.router.HandlerFunc("GET", "/", index)
|
||||
|
||||
fmt.Printf("Preparing to listen on `:%v`\n", conf.HttpPort)
|
||||
err := http.ListenAndServe(fmt.Sprintf(":%v", conf.HttpPort), deps.router)
|
||||
log.Fatal(err)
|
||||
|
|
@ -49,7 +49,7 @@ func setupConfig() {
|
|||
}
|
||||
|
||||
type dependencies struct {
|
||||
router *httprouter.Router
|
||||
router *chi.Mux
|
||||
postgresConnection *pgxpool.Pool
|
||||
context context.Context
|
||||
powerItemQuerier *powerItem.DBQuerier
|
||||
|
|
@ -60,15 +60,12 @@ type dependencies struct {
|
|||
func (d *dependencies) initializeDependencies() error {
|
||||
var err error
|
||||
|
||||
d.router = httprouter.New()
|
||||
d.router.GlobalOPTIONS = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Header.Get("Access-Control-Request-Method") != "" {
|
||||
header := w.Header()
|
||||
header.Set("Access-Control-Allow-Methods", header.Get("Allow"))
|
||||
header.Set("Access-Control-Allow-Headers", "Cache-Control, Expires, Pragma")
|
||||
header.Set("Access-Control-Allow-Origin", "*")
|
||||
}
|
||||
})
|
||||
d.router = chi.NewRouter()
|
||||
d.router.Use(cors.Handler(cors.Options{
|
||||
AllowedOrigins: []string{"*"},
|
||||
AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
|
||||
AllowedHeaders: []string{"Cache-Control", "Expires", "Pragma"},
|
||||
}))
|
||||
d.context = context.Background()
|
||||
d.postgresConnection, err = pgxpool.Connect(d.context, conf.ConnectionString)
|
||||
if err != nil {
|
||||
|
|
@ -76,17 +73,7 @@ func (d *dependencies) initializeDependencies() error {
|
|||
}
|
||||
d.powerItemQuerier = powerItem.NewQuerier(d.postgresConnection)
|
||||
d.powerItemService = Services.NewPowerItemService(d.powerItemQuerier)
|
||||
d.powerItemController = Controllers.NewPowerItemController(d.router, d.powerItemService)
|
||||
d.powerItemController = Controllers.NewPowerItemController(d.powerItemService)
|
||||
d.router.Mount("/powerItems", routes.SetupPowerItemRoutes(*d.powerItemController))
|
||||
return nil
|
||||
}
|
||||
|
||||
func MiddleCORS(next httprouter.Handle) httprouter.Handle {
|
||||
return func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
|
||||
w.Header().Set("Access-Control-Allow-Origin", "*")
|
||||
next(w, r, ps)
|
||||
}
|
||||
}
|
||||
|
||||
func index(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprint(w, "Index")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue