router.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package main
  2. import (
  3. "sparrow/pkg/models"
  4. "github.com/go-martini/martini"
  5. "github.com/martini-contrib/binding"
  6. )
  7. // martini router
  8. func route(m *martini.ClassicMartini) {
  9. // find a device by key
  10. m.Get("/application/v1/device/info", GetDeviceInfoByKey)
  11. // find a device by identifier
  12. m.Get("/application/v1/devices/:identifier/info", ApplicationAuthOnDeviceIdentifer, GetDeviceInfoByIdentifier)
  13. // get devie current status
  14. m.Get("/application/v1/devices/:identifier/status/current",
  15. ApplicationAuthOnDeviceIdentifer, CheckDeviceOnline, CheckProductConfig,
  16. GetDeviceCurrentStatus)
  17. // get devie latest status
  18. m.Get("/application/v1/devices/:identifier/status/latest",
  19. ApplicationAuthOnDeviceIdentifer, CheckDeviceOnline, CheckProductConfig,
  20. GetDeviceLatestStatus)
  21. // set device status
  22. m.Put("/application/v1/devices/:identifier/status",
  23. ApplicationAuthOnDeviceIdentifer, CheckDeviceOnline, CheckProductConfig,
  24. SetDeviceStatus)
  25. // send a command to device
  26. m.Post("/application/v1/devices/:identifier/commands",
  27. ApplicationAuthOnDeviceIdentifer, CheckDeviceOnline, CheckProductConfig,
  28. SendCommandToDevice)
  29. // and a rule to device
  30. m.Post("/application/v1/devices/:identifier/rules",
  31. ApplicationAuthOnDeviceIdentifer, CheckDeviceIdentifier,
  32. AddRule)
  33. m.Post("/api/v1/login", binding.Bind(models.LoginRequest{}), UserLogin)
  34. m.Post("/api/v1/reg", binding.Bind(models.Request))
  35. }