parking.go 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. cameraGroup.POST("/create", parking.CreateCamera)
  20. cameraGroup.PUT("/update", parking.UpdateCamera)
  21. cameraGroup.GET("/list", parking.ListCameras)
  22. cameraGroup.DELETE("/delete", parking.DeleteCamera)
  23. }
  24. parkLotGroup := parkingGroup.Group("/lot")
  25. {
  26. parkLotGroup.POST("/create", parking.CreateParkingLot)
  27. parkLotGroup.PUT("/update", parking.UpdateParkingLot)
  28. parkLotGroup.GET("/get", parking.GetParkingLotByID)
  29. parkLotGroup.GET("/get-by-code", parking.GetParkingLotByCode)
  30. parkLotGroup.GET("/list", parking.ListParkingLots)
  31. parkLotGroup.GET("/all", parking.QueryAllParkingLots)
  32. parkLotGroup.DELETE("/delete", parking.DeleteParkingLot)
  33. }
  34. boothGroup := parkingGroup.Group("/booth")
  35. {
  36. boothGroup.POST("/create", parking.CreateBooth)
  37. boothGroup.PUT("/update", parking.UpdateBooth)
  38. boothGroup.GET("/get", parking.GetBoothByID)
  39. boothGroup.GET("/get-by-code", parking.GetBoothByCode)
  40. boothGroup.GET("/list", parking.ListBooths)
  41. boothGroup.GET("/all", parking.QueryAllBooths)
  42. boothGroup.DELETE("/delete", parking.DeleteBooth)
  43. }
  44. channelGroup := parkingGroup.Group("/channel")
  45. {
  46. channelGroup.POST("/create", parking.CreateChannel)
  47. channelGroup.PUT("/update", parking.UpdateChannel)
  48. channelGroup.GET("/get", parking.GetChannelByID)
  49. channelGroup.GET("/get-by-code", parking.GetChannelByCode)
  50. channelGroup.GET("/list", parking.ListChannels)
  51. channelGroup.GET("/all", parking.QueryAllChannels)
  52. channelGroup.DELETE("/delete", parking.DeleteChannel)
  53. }
  54. deviceGroup := parkingGroup.Group("/device")
  55. {
  56. deviceGroup.POST("/create", uhf.CreateReader)
  57. deviceGroup.PUT("/update", uhf.UpdateReader)
  58. deviceGroup.GET("/connectedDevice", uhf.ConnectedDevice)
  59. deviceGroup.GET("/get-by-code", uhf.GetReaderByCode)
  60. deviceGroup.GET("/list", uhf.ListReaders)
  61. deviceGroup.GET("/all", uhf.QueryAllReaders)
  62. deviceGroup.DELETE("/delete", uhf.DeleteReader)
  63. }
  64. }
  65. // SetupParkingStreamPublicRouter 注册带短期令牌的摄像头流输出地址。
  66. // 浏览器的 <img>/<video> 请求无法携带 x-token 请求头,因此该地址放在公开组,
  67. // 由服务层校验一次性短期令牌和设备状态。
  68. func SetupParkingStreamPublicRouter(router *gin.RouterGroup) {
  69. router.GET("/parking/camera/stream/:device_code/:token", parking.CameraMJPEG)
  70. }
  71. // SetupParkingDebugRouter 仅在显式开发配置开启时注册模拟事件接口。
  72. func SetupParkingDebugRouter(router *gin.RouterGroup, enabled bool) {
  73. if !enabled {
  74. return
  75. }
  76. router.POST("/channel/test-event", parking.SimulateEvent)
  77. }