25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

113 satır
2.5 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. return []model.Tracker{}, err
  13. }
  14. var i []model.Tracker
  15. err = json.NewDecoder(res.Body).Decode(&i)
  16. if err != nil {
  17. return []model.Tracker{}, err
  18. }
  19. return i, nil
  20. }
  21. func GetGateways(token string, client *http.Client, cfg *config.Config) ([]model.Gateway, error) {
  22. res, err := getRequest(token, "getGateways", client, cfg)
  23. if err != nil {
  24. return []model.Gateway{}, err
  25. }
  26. var i []model.Gateway
  27. err = json.NewDecoder(res.Body).Decode(&i)
  28. if err != nil {
  29. return []model.Gateway{}, err
  30. }
  31. return i, nil
  32. }
  33. func GetTrackerZones(token string, client *http.Client, cfg *config.Config) ([]model.TrackerZones, error) {
  34. res, err := getRequest(token, "getTrackerZones", client, cfg)
  35. if err != nil {
  36. return []model.TrackerZones{}, err
  37. }
  38. var i []model.TrackerZones
  39. err = json.NewDecoder(res.Body).Decode(&i)
  40. if err != nil {
  41. return []model.TrackerZones{}, err
  42. }
  43. return i, nil
  44. }
  45. func GetFloors(token string, client *http.Client, cfg *config.Config) ([]model.Floor, error) {
  46. res, err := getRequest(token, "getFloors", client, cfg)
  47. if err != nil {
  48. return []model.Floor{}, err
  49. }
  50. var i []model.Floor
  51. err = json.NewDecoder(res.Body).Decode(&i)
  52. if err != nil {
  53. return []model.Floor{}, err
  54. }
  55. return i, nil
  56. }
  57. func GetZones(token string, client *http.Client, cfg *config.Config) ([]model.Zone, error) {
  58. res, err := getRequest(token, "getZones", client, cfg)
  59. if err != nil {
  60. return []model.Zone{}, err
  61. }
  62. var i []model.Zone
  63. err = json.NewDecoder(res.Body).Decode(&i)
  64. if err != nil {
  65. return []model.Zone{}, err
  66. }
  67. return i, nil
  68. }
  69. func InferPosition(token string, client *http.Client, cfg *config.Config) (model.PositionResponse, error) {
  70. url := fmt.Sprintf("%s/ble-ai/infer", cfg.APIBaseURL)
  71. req, err := http.NewRequest("GET", url, nil)
  72. if err != nil {
  73. return model.PositionResponse{}, err
  74. }
  75. setHeader(req, token)
  76. res, err := client.Do(req)
  77. if err != nil {
  78. return model.PositionResponse{}, err
  79. }
  80. if res.StatusCode != 200 {
  81. return model.PositionResponse{}, fmt.Errorf("status code: %d", res.StatusCode)
  82. }
  83. var i model.PositionResponse
  84. err = json.NewDecoder(res.Body).Decode(&i)
  85. if err != nil {
  86. return model.PositionResponse{}, err
  87. }
  88. return i, nil
  89. }