parking.go 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package parking
  2. import (
  3. "wails-app/internal/api/v1/parking"
  4. "wails-app/internal/api/v1/uhf"
  5. "github.com/gin-gonic/gin"
  6. )
  7. func SetupParkingRouter(router *gin.RouterGroup) {
  8. router.GET("/channel/events", parking.GetChannelEvents)
  9. parkingGroup := router.Group("/parking")
  10. gateGroup := parkingGroup.Group("/gate")
  11. {
  12. gateGroup.GET("/devices", parking.ListGateDevices)
  13. gateGroup.POST("/open", parking.OpenGate)
  14. gateGroup.POST("/close", parking.CloseGate)
  15. }
  16. cameraGroup := parkingGroup.Group("/camera")
  17. {
  18. cameraGroup.GET("/streams", parking.ListCameraStreams)
  19. }
  20. parkLotGroup := parkingGroup.Group("/lot")
  21. {
  22. parkLotGroup.POST("/create", parking.CreateParkingLot)
  23. parkLotGroup.PUT("/update", parking.UpdateParkingLot)
  24. parkLotGroup.GET("/get", parking.GetParkingLotByID)
  25. parkLotGroup.GET("/get-by-code", parking.GetParkingLotByCode)
  26. parkLotGroup.GET("/list", parking.ListParkingLots)
  27. parkLotGroup.GET("/all", parking.QueryAllParkingLots)
  28. parkLotGroup.DELETE("/delete", parking.DeleteParkingLot)
  29. }
  30. boothGroup := parkingGroup.Group("/booth")
  31. {
  32. boothGroup.POST("/create", parking.CreateBooth)
  33. boothGroup.PUT("/update", parking.UpdateBooth)
  34. boothGroup.GET("/get", parking.GetBoothByID)
  35. boothGroup.GET("/get-by-code", parking.GetBoothByCode)
  36. boothGroup.GET("/list", parking.ListBooths)
  37. boothGroup.GET("/all", parking.QueryAllBooths)
  38. boothGroup.DELETE("/delete", parking.DeleteBooth)
  39. }
  40. channelGroup := parkingGroup.Group("/channel")
  41. {
  42. channelGroup.POST("/create", parking.CreateChannel)
  43. channelGroup.PUT("/update", parking.UpdateChannel)
  44. channelGroup.GET("/get", parking.GetChannelByID)
  45. channelGroup.GET("/get-by-code", parking.GetChannelByCode)
  46. channelGroup.GET("/list", parking.ListChannels)
  47. channelGroup.GET("/all", parking.QueryAllChannels)
  48. channelGroup.DELETE("/delete", parking.DeleteChannel)
  49. }
  50. deviceGroup := parkingGroup.Group("/device")
  51. {
  52. deviceGroup.POST("/create", uhf.CreateReader)
  53. deviceGroup.PUT("/update", uhf.UpdateReader)
  54. deviceGroup.GET("/connectedDevice", uhf.ConnectedDevice)
  55. deviceGroup.GET("/get-by-code", uhf.GetReaderByCode)
  56. deviceGroup.GET("/list", uhf.ListReaders)
  57. deviceGroup.GET("/all", uhf.QueryAllReaders)
  58. deviceGroup.DELETE("/delete", uhf.DeleteReader)
  59. }
  60. }
  61. // SetupParkingStreamPublicRouter 注册带短期令牌的摄像头流输出地址。
  62. // 浏览器的 <img>/<video> 请求无法携带 x-token 请求头,因此该地址放在公开组,
  63. // 由服务层校验一次性短期令牌和设备状态。
  64. func SetupParkingStreamPublicRouter(router *gin.RouterGroup) {
  65. router.GET("/parking/camera/stream/:device_code/:token", parking.CameraMJPEG)
  66. }
  67. // SetupParkingDebugRouter 仅在显式开发配置开启时注册模拟事件接口。
  68. func SetupParkingDebugRouter(router *gin.RouterGroup, enabled bool) {
  69. if !enabled {
  70. return
  71. }
  72. router.POST("/channel/test-event", parking.SimulateEvent)
  73. }