You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

100 regels
2.3 KiB

  1. package apiclient
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "net/http"
  6. "github.com/AFASystems/presence/internal/pkg/config"
  7. "github.com/AFASystems/presence/internal/pkg/model"
  8. )
  9. func GetTrackers(token string, client *http.Client, cfg *config.Config) ([]model.Tracker, error) {
  10. res, err := getRequest(token, "getTrackers", client, cfg)
  11. if err != nil {
  12. fmt.Printf("error get trackers: %+v\n", err)
  13. return []model.Tracker{}, err
  14. }
  15. var i []model.Tracker
  16. err = json.NewDecoder(res.Body).Decode(&i)
  17. if err != nil {
  18. fmt.Printf("error decode trackers: %+v\n", err)
  19. return []model.Tracker{}, err
  20. }
  21. return i, nil
  22. }
  23. func GetGateways(token string, client *http.Client, cfg *config.Config) ([]model.Gateway, error) {
  24. res, err := getRequest(token, "getGateways", client, cfg)
  25. if err != nil {
  26. fmt.Printf("error get gateways: %+v\n", err)
  27. return []model.Gateway{}, err
  28. }
  29. var i []model.Gateway
  30. err = json.NewDecoder(res.Body).Decode(&i)
  31. if err != nil {
  32. return []model.Gateway{}, err
  33. }
  34. return i, nil
  35. }
  36. func GetTrackerZones(token string, client *http.Client, cfg *config.Config) ([]model.TrackerZones, error) {
  37. res, err := getRequest(token, "getTrackerZones", client, cfg)
  38. if err != nil {
  39. return []model.TrackerZones{}, err
  40. }
  41. var i []model.TrackerZones
  42. err = json.NewDecoder(res.Body).Decode(&i)
  43. if err != nil {
  44. return []model.TrackerZones{}, err
  45. }
  46. return i, nil
  47. }
  48. func GetZones(token string, client *http.Client, cfg *config.Config) ([]model.Zone, error) {
  49. res, err := getRequest(token, "getZones", client, cfg)
  50. if err != nil {
  51. return []model.Zone{}, err
  52. }
  53. var i []model.Zone
  54. err = json.NewDecoder(res.Body).Decode(&i)
  55. if err != nil {
  56. return []model.Zone{}, err
  57. }
  58. return i, nil
  59. }
  60. func InferPosition(token string, client *http.Client, cfg *config.Config) (model.PositionResponse, error) {
  61. url := fmt.Sprintf("%s/ble-ai/infer", cfg.APIBaseURL)
  62. req, err := http.NewRequest("GET", url, nil)
  63. if err != nil {
  64. fmt.Printf("error new request: %+v\n", err)
  65. return model.PositionResponse{}, err
  66. }
  67. setHeader(req, token)
  68. res, err := client.Do(req)
  69. if err != nil {
  70. fmt.Printf("error do request: %+v\n", err)
  71. return model.PositionResponse{}, err
  72. }
  73. var i model.PositionResponse
  74. err = json.NewDecoder(res.Body).Decode(&i)
  75. if err != nil {
  76. fmt.Printf("error decode response: %+v\n", err)
  77. return model.PositionResponse{}, err
  78. }
  79. return i, nil
  80. }