mirror of
https://github.com/netbirdio/netbird.git
synced 2025-03-04 18:01:13 +01:00
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
|
package rest
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"github.com/netbirdio/netbird/management/server/http/api"
|
||
|
)
|
||
|
|
||
|
// GeoLocationAPI APIs for Geo-Location, do not use directly
|
||
|
type GeoLocationAPI struct {
|
||
|
c *Client
|
||
|
}
|
||
|
|
||
|
// ListCountries list all country codes
|
||
|
// See more: https://docs.netbird.io/api/resources/geo-locations#list-all-country-codes
|
||
|
func (a *GeoLocationAPI) ListCountries(ctx context.Context) ([]api.Country, error) {
|
||
|
resp, err := a.c.newRequest(ctx, "GET", "/api/locations/countries", nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
defer resp.Body.Close()
|
||
|
ret, err := parseResponse[[]api.Country](resp)
|
||
|
return ret, err
|
||
|
}
|
||
|
|
||
|
// ListCountryCities Get a list of all English city names for a given country code
|
||
|
// See more: https://docs.netbird.io/api/resources/geo-locations#list-all-city-names-by-country
|
||
|
func (a *GeoLocationAPI) ListCountryCities(ctx context.Context, countryCode string) ([]api.City, error) {
|
||
|
resp, err := a.c.newRequest(ctx, "GET", "/api/locations/countries/"+countryCode+"/cities", nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
defer resp.Body.Close()
|
||
|
ret, err := parseResponse[[]api.City](resp)
|
||
|
return ret, err
|
||
|
}
|