mirror of
https://forgejo.merr.is/annika/isl-api.git
synced 2025-12-11 13:55:27 -05:00
Added Functionality To PowerItem Endpoint
TODO: Change "addMultiple" to not require a map. That only exists so I could import easily from my old project.
This commit is contained in:
parent
d52d9968ba
commit
1420b14565
7 changed files with 373 additions and 95 deletions
65
main.go
65
main.go
|
|
@ -1,41 +1,52 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"isl-api/Controllers"
|
||||
"isl-api/Services"
|
||||
"isl-api/sql/powerItem"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/jackc/pgx/v4"
|
||||
"github.com/julienschmidt/httprouter"
|
||||
)
|
||||
|
||||
func main() {
|
||||
mux := http.NewServeMux()
|
||||
mux.HandleFunc("/", index)
|
||||
Controllers.SetPowerItemEndpoints(mux, "powerItem")
|
||||
deps := dependencies{}
|
||||
deps.initializeDependencies()
|
||||
|
||||
err := http.ListenAndServe(":3000", mux)
|
||||
deps.router.HandlerFunc("GET", "/", index)
|
||||
|
||||
err := http.ListenAndServe(":3000", deps.router)
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
func index(w http.ResponseWriter, r *http.Request) {
|
||||
if r.URL.Path != "/" {
|
||||
http.NotFound(w, r)
|
||||
return
|
||||
}
|
||||
|
||||
// Common code for all requests can go here...
|
||||
|
||||
switch r.Method {
|
||||
case http.MethodGet:
|
||||
// Handle the GET request...
|
||||
|
||||
case http.MethodPost:
|
||||
// Handle the POST request...
|
||||
|
||||
case http.MethodOptions:
|
||||
w.Header().Set("Allow", "GET, POST, OPTIONS")
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
|
||||
default:
|
||||
w.Header().Set("Allow", "GET, POST, OPTIONS")
|
||||
http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
|
||||
}
|
||||
type dependencies struct {
|
||||
router *httprouter.Router
|
||||
postgresConnection *pgx.Conn
|
||||
context context.Context
|
||||
powerItemQuerier *powerItem.DBQuerier
|
||||
powerItemService *Services.PowerItemService
|
||||
powerItemController *Controllers.PowerItemController
|
||||
}
|
||||
|
||||
func (d *dependencies) initializeDependencies() error {
|
||||
var err error
|
||||
|
||||
d.router = httprouter.New()
|
||||
d.context = context.Background()
|
||||
d.postgresConnection, err = pgx.Connect(d.context, "postgres://isl:development@localhost:5432/isl")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
d.powerItemQuerier = powerItem.NewQuerier(d.postgresConnection)
|
||||
d.powerItemService = Services.NewPowerItemService(d.powerItemQuerier)
|
||||
d.powerItemController = Controllers.NewPowerItemController(d.router, d.powerItemService)
|
||||
return nil
|
||||
}
|
||||
|
||||
func index(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprint(w, "Index")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue