tasksapi.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package api
  2. import (
  3. "net/http"
  4. "github.com/go-chi/chi"
  5. "github.com/go-chi/render"
  6. "github.com/willie68/AutoRestIoT/dao"
  7. "github.com/willie68/AutoRestIoT/worker"
  8. )
  9. //AdminRoutes getting all routes for the config endpoint
  10. func TasksRoutes() *chi.Mux {
  11. router := chi.NewRouter()
  12. router.With(RoleCheck([]string{"admin"})).Get("/", GetAdminTasksHandler)
  13. return router
  14. }
  15. // GetAdminTasksHandler getting server info
  16. func GetAdminTasksHandler(response http.ResponseWriter, request *http.Request) {
  17. log.Infof("GET: path: %s", request.URL.Path)
  18. route := worker.GetTaskRoute()
  19. log.Infof("GET many: path: %s, route: %s", request.URL.Path, route.String())
  20. query := ""
  21. n, models, err := worker.Query(route, query, 0, 0)
  22. if err != nil {
  23. if err == dao.ErrNotImplemented {
  24. render.Render(response, request, ErrNotImplemted)
  25. return
  26. }
  27. render.Render(response, request, ErrInternalServer(err))
  28. return
  29. }
  30. m := make(map[string]interface{})
  31. m["data"] = models
  32. m["found"] = n
  33. m["count"] = len(models)
  34. m["query"] = query
  35. m["offset"] = 0
  36. m["limit"] = 0
  37. render.JSON(response, request, m)
  38. }