2024-05-11 16:08:28 +03:00
|
|
|
package geolocate
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
)
|
|
|
|
|
|
|
|
type (
|
|
|
|
// Requester provides transport level API calls.
|
|
|
|
Requester interface {
|
|
|
|
// Post makes a POST API call. Assumes sending json-encoded params in a request body.
|
|
|
|
Post(ctx context.Context, apiMethod string, params, result interface{}) error
|
|
|
|
}
|
|
|
|
|
|
|
|
// Api provides suggestion API.
|
|
|
|
Api struct {
|
|
|
|
Client Requester
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
2024-05-11 17:48:05 +03:00
|
|
|
// AddressByCoordinates try to return suggest addresses by params
|
2024-05-11 16:08:28 +03:00
|
|
|
// see documentation on:https://dadata.ru/api/geolocate/
|
2024-05-11 17:48:05 +03:00
|
|
|
func (a *Api) AddressByCoordinates(ctx context.Context, params *RequestParams) (ret []*AddressSuggestion, err error) {
|
|
|
|
var result = &AddressResponse{}
|
2024-05-11 16:08:28 +03:00
|
|
|
err = a.Client.Post(ctx, "geolocate/address", params, result)
|
|
|
|
if err != nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
ret = result.Suggestions
|
|
|
|
return
|
|
|
|
}
|