nidus-sync/stadia/geocode_bygid.go

42 lines
985 B
Go
Raw Normal View History

package stadia
import (
"context"
"fmt"
"github.com/google/go-querystring/query"
)
type RequestGeocodeByGID struct {
GIDs []string `url:"ids,comma"`
// Other parameters
Lang *string `url:"lang,omitempty" json:"lang,omitempty"`
}
func (s *StadiaMaps) GeocodeByGID(ctx context.Context, req RequestGeocodeByGID) (*GeocodeResponse, error) {
// https://docs.stadiamaps.com/geocoding-search-autocomplete/place-details/
var result GeocodeResponse
query, err := query.Values(req)
if err != nil {
return nil, fmt.Errorf("structured geocode query: %w", err)
}
//var api_error Error
resp, err := s.client.R().
SetQueryParamsFromValues(query).
SetContext(ctx).
SetResult(&result).
SetPathParam("urlBase", s.urlBaseApi).
SetQueryParam("api_key", s.APIKey).
Get("https://{urlBase}/geocoding/v2/place_details")
if err != nil {
return nil, fmt.Errorf("autocomplete get: %w", err)
}
if !resp.IsSuccess() {
return nil, parseError(resp)
}
return &result, nil
}