No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

60 líneas
3.2 KiB

  1. package server
  2. import (
  3. "net/http"
  4. "github.com/AFASystems/presence/internal/pkg/api/handler"
  5. "github.com/AFASystems/presence/internal/pkg/api/middleware"
  6. "github.com/AFASystems/presence/internal/pkg/controller"
  7. "github.com/gorilla/mux"
  8. )
  9. // RegisterRoutes builds the router and applies middleware. Uses app's DB, Kafka writers, and ctx.
  10. func (a *ServerApp) RegisterRoutes() http.Handler {
  11. r := mux.NewRouter()
  12. // Health
  13. r.HandleFunc("/health", handler.Health).Methods("GET")
  14. r.HandleFunc("/ready", handler.Ready(a.DB)).Methods("GET")
  15. // Gateways
  16. r.HandleFunc("/reslevis/getGateways", controller.GatewayListController(a.DB)).Methods("GET")
  17. r.HandleFunc("/reslevis/postGateway", controller.GatewayAddController(a.DB)).Methods("POST")
  18. r.HandleFunc("/reslevis/removeGateway/{id}", controller.GatewayDeleteController(a.DB)).Methods("DELETE")
  19. r.HandleFunc("/reslevis/updateGateway/{id}", controller.GatewayUpdateController(a.DB)).Methods("PUT")
  20. // Zones
  21. r.HandleFunc("/reslevis/getZones", controller.ZoneListController(a.DB)).Methods("GET")
  22. r.HandleFunc("/reslevis/postZone", controller.ZoneAddController(a.DB)).Methods("POST")
  23. r.HandleFunc("/reslevis/removeZone/{id}", controller.ZoneDeleteController(a.DB)).Methods("DELETE")
  24. r.HandleFunc("/reslevis/updateZone", controller.ZoneUpdateController(a.DB)).Methods("PUT")
  25. // Tracker zones
  26. r.HandleFunc("/reslevis/getTrackerZones", controller.TrackerZoneListController(a.DB)).Methods("GET")
  27. r.HandleFunc("/reslevis/postTrackerZone", controller.TrackerZoneAddController(a.DB)).Methods("POST")
  28. r.HandleFunc("/reslevis/removeTrackerZone/{id}", controller.TrackerZoneDeleteController(a.DB)).Methods("DELETE")
  29. r.HandleFunc("/reslevis/updateTrackerZone", controller.TrackerZoneUpdateController(a.DB)).Methods("PUT")
  30. // Trackers
  31. r.HandleFunc("/reslevis/getTrackers", controller.TrackerList(a.DB)).Methods("GET")
  32. r.HandleFunc("/reslevis/postTracker", controller.TrackerAdd(a.DB, a.KafkaManager.GetWriter("apibeacons"), a.ctx)).Methods("POST")
  33. r.HandleFunc("/reslevis/removeTracker/{id}", controller.TrackerDelete(a.DB, a.KafkaManager.GetWriter("apibeacons"), a.ctx)).Methods("DELETE")
  34. r.HandleFunc("/reslevis/updateTracker", controller.TrackerUpdate(a.DB)).Methods("PUT")
  35. // Parser configs
  36. r.HandleFunc("/configs/beacons", controller.ParserListController(a.DB)).Methods("GET")
  37. r.HandleFunc("/configs/beacons", controller.ParserAddController(a.DB, a.KafkaManager.GetWriter("parser"), a.ctx)).Methods("POST")
  38. r.HandleFunc("/configs/beacons/{id}", controller.ParserUpdateController(a.DB, a.KafkaManager.GetWriter("parser"), a.ctx)).Methods("PUT")
  39. r.HandleFunc("/configs/beacons/{id}", controller.ParserDeleteController(a.DB, a.KafkaManager.GetWriter("parser"), a.ctx)).Methods("DELETE")
  40. // Settings
  41. r.HandleFunc("/reslevis/settings", controller.SettingsUpdateController(a.DB, a.KafkaManager.GetWriter("settings"), a.ctx)).Methods("PATCH")
  42. r.HandleFunc("/reslevis/settings", controller.SettingsListController(a.DB)).Methods("GET")
  43. // Tracks
  44. r.HandleFunc("/reslevis/getTracks/{id}", controller.TracksListController(a.DB)).Methods("GET")
  45. chain := middleware.Recovery(middleware.Logging(middleware.RequestID(middleware.CORS(nil, nil, nil)(r))))
  46. return chain
  47. }