|
- package server
-
- import (
- "net/http"
-
- "github.com/AFASystems/presence/internal/pkg/api/handler"
- "github.com/AFASystems/presence/internal/pkg/api/middleware"
- "github.com/AFASystems/presence/internal/pkg/controller"
- "github.com/gorilla/mux"
- )
-
- // RegisterRoutes builds the router and applies middleware. Uses app's DB, Kafka writers, and ctx.
- func (a *ServerApp) RegisterRoutes() http.Handler {
- r := mux.NewRouter()
-
- // Health
- r.HandleFunc("/health", handler.Health).Methods("GET")
- r.HandleFunc("/ready", handler.Ready(a.DB)).Methods("GET")
-
- // Gateways
- r.HandleFunc("/reslevis/getGateways", controller.GatewayListController(a.DB)).Methods("GET")
- r.HandleFunc("/reslevis/postGateway", controller.GatewayAddController(a.DB)).Methods("POST")
- r.HandleFunc("/reslevis/removeGateway/{id}", controller.GatewayDeleteController(a.DB)).Methods("DELETE")
- r.HandleFunc("/reslevis/updateGateway/{id}", controller.GatewayUpdateController(a.DB)).Methods("PUT")
-
- // Zones
- r.HandleFunc("/reslevis/getZones", controller.ZoneListController(a.DB)).Methods("GET")
- r.HandleFunc("/reslevis/postZone", controller.ZoneAddController(a.DB)).Methods("POST")
- r.HandleFunc("/reslevis/removeZone/{id}", controller.ZoneDeleteController(a.DB)).Methods("DELETE")
- r.HandleFunc("/reslevis/updateZone", controller.ZoneUpdateController(a.DB)).Methods("PUT")
-
- // Tracker zones
- r.HandleFunc("/reslevis/getTrackerZones", controller.TrackerZoneListController(a.DB)).Methods("GET")
- r.HandleFunc("/reslevis/postTrackerZone", controller.TrackerZoneAddController(a.DB)).Methods("POST")
- r.HandleFunc("/reslevis/removeTrackerZone/{id}", controller.TrackerZoneDeleteController(a.DB)).Methods("DELETE")
- r.HandleFunc("/reslevis/updateTrackerZone", controller.TrackerZoneUpdateController(a.DB)).Methods("PUT")
-
- // Trackers
- r.HandleFunc("/reslevis/getTrackers", controller.TrackerList(a.DB)).Methods("GET")
- r.HandleFunc("/reslevis/postTracker", controller.TrackerAdd(a.DB, a.KafkaManager.GetWriter("apibeacons"), a.ctx)).Methods("POST")
- r.HandleFunc("/reslevis/removeTracker/{id}", controller.TrackerDelete(a.DB, a.KafkaManager.GetWriter("apibeacons"), a.ctx)).Methods("DELETE")
- r.HandleFunc("/reslevis/updateTracker", controller.TrackerUpdate(a.DB)).Methods("PUT")
-
- // Parser configs
- r.HandleFunc("/configs/beacons", controller.ParserListController(a.DB)).Methods("GET")
- r.HandleFunc("/configs/beacons", controller.ParserAddController(a.DB, a.KafkaManager.GetWriter("parser"), a.ctx)).Methods("POST")
- r.HandleFunc("/configs/beacons/{id}", controller.ParserUpdateController(a.DB, a.KafkaManager.GetWriter("parser"), a.ctx)).Methods("PUT")
- r.HandleFunc("/configs/beacons/{id}", controller.ParserDeleteController(a.DB, a.KafkaManager.GetWriter("parser"), a.ctx)).Methods("DELETE")
-
- // Settings
- r.HandleFunc("/reslevis/settings", controller.SettingsUpdateController(a.DB, a.KafkaManager.GetWriter("settings"), a.ctx)).Methods("PATCH")
- r.HandleFunc("/reslevis/settings", controller.SettingsListController(a.DB)).Methods("GET")
-
- // Tracks
- r.HandleFunc("/reslevis/getTracks/{id}", controller.TracksListController(a.DB)).Methods("GET")
-
- chain := middleware.Recovery(middleware.Logging(middleware.RequestID(middleware.CORS(nil, nil, nil)(r))))
- return chain
- }
|