package apiclient import ( "encoding/json" "fmt" "net/http" "github.com/AFASystems/presence/internal/pkg/model" ) func GetTrackers(token string, client *http.Client) ([]model.Tracker, error) { res, err := getRequest(token, "getTrackers", client) if err != nil { return []model.Tracker{}, err } var i []model.Tracker err = json.NewDecoder(res.Body).Decode(&i) if err != nil { return []model.Tracker{}, err } return i, nil } func GetGateways(token string, client *http.Client) ([]model.Gateway, error) { res, err := getRequest(token, "getGateways", client) if err != nil { return []model.Gateway{}, err } var i []model.Gateway err = json.NewDecoder(res.Body).Decode(&i) if err != nil { return []model.Gateway{}, err } return i, nil } func GetTrackerZones(token string, client *http.Client) ([]model.TrackerZones, error) { res, err := getRequest(token, "getTrackerZones", client) if err != nil { return []model.TrackerZones{}, err } var i []model.TrackerZones err = json.NewDecoder(res.Body).Decode(&i) if err != nil { return []model.TrackerZones{}, err } return i, nil } func GetZones(token string, client *http.Client) ([]model.Zone, error) { res, err := getRequest(token, "getZones", client) if err != nil { return []model.Zone{}, err } var i []model.Zone err = json.NewDecoder(res.Body).Decode(&i) if err != nil { return []model.Zone{}, err } return i, nil } func getRequest(token, route string, client *http.Client) (*http.Response, error) { url := fmt.Sprintf("https://10.251.0.30:5050/reslevis/%s", route) req, err := http.NewRequest("GET", url, nil) if err != nil { return nil, err } header := fmt.Sprintf("Bearer %s", token) req.Header.Add("Authorization", header) res, err := client.Do(req) if err != nil { return nil, err } return res, nil }