Documentation ¶
Index ¶
- Constants
- type AdditionalService
- type ApiService
- type CalcRequestLocation
- type CalcRespService
- type CalcService
- type CalculatorRequest
- type CalculatorResponse
- type CitiesFilter
- type CitiesFilterParamName
- type City
- type CityError
- type Client
- func (c *Client) Calculator(ctx context.Context, request CalculatorRequest) (CalculatorResponse, error)
- func (c Client) GetCities(ctx context.Context, filter CitiesFilter) ([]City, error)
- func (c Client) GetOffices(ctx context.Context, filter OfficesFilter) ([]Office, error)
- func (c *Client) SetAuth(clientId string, secret string) *Client
- type ErrorApiV1
- type ErrorApiV2
- type ErrorsApiV1
- type Good
- type Office
- type OfficeImage
- type OfficeLocation
- type Offices
- type OfficesFilter
- type OfficesFilterParamName
- type PhoneDetail
- type WorkTimeExcept
- type WorkTimeItem
Constants ¶
View Source
const ( OrderTypeECommerce = 1 OrderTypeDelivery = 2 )
View Source
const ( APITestBaseURL = "http://api.edu.cdek.ru/v2" APIBaseURL = "http://api.cdek.ru/v2" APICalculatorURL = "http://api.cdek.ru/calculator/calculate_price_by_json.php" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdditionalService ¶
type ApiService ¶
type ApiService interface { GetOffices(ctx context.Context, filter OfficesFilter) ([]Office, error) GetCities(ctx context.Context, filter CitiesFilter) ([]City, error) Calculator(ctx context.Context, request CalculatorRequest) (CalculatorResponse, error) }
type CalcRequestLocation ¶ added in v0.1.0
type CalcRequestLocation struct { Code int `json:"code,omitempty"` // Код населенного пункта СДЭК (метод "Список населенных пунктов") PostalCode string `json:"postal_code,omitempty"` // Почтовый индекс CountryCode string `json:"country_code,omitempty"` // Код страны в формате ISO_3166-1_alpha-2 City string `json:"city,omitempty"` // Название города }
type CalcRespService ¶ added in v0.1.0
type CalcService ¶ added in v0.1.0
type CalculatorRequest ¶
type CalculatorRequest struct { Date string `json:"date,omitempty"` OrderType int `json:"type,omitempty"` // Тип заказа Currency int `json:"currency,omitempty"` // Валюта, в которой необходимо произвести расчет TariffCode int `json:"tariff_code"` // Код тарифа FromLocation CalcRequestLocation `json:"from_location"` // Адрес отправления, Required ToLocation CalcRequestLocation `json:"to_location"` // Адрес получения, Required Services []CalcService `json:"services,omitempty"` // Дополнительные услуги Packages []Good `json:"packages"` // Список информации по местам (упаковкам) }
type CalculatorResponse ¶
type CalculatorResponse struct { DeliveryPeriodMin int `json:"period_min"` DeliveryPeriodMax int `json:"period_max"` WeightCalc int `json:"weight_calc"` Services []CalcRespService `json:"services"` Price float64 `json:"delivery_sum"` Total float64 `json:"total_sum"` // Стоимость доставки с учетом дополнительных услуг Currency string `json:"currency"` // Валюта, в которой рассчитана стоимость доставки (код СДЭК) Errors []ErrorApiV2 }
type CitiesFilter ¶
type CitiesFilter struct {
// contains filtered or unexported fields
}
func (*CitiesFilter) AddParam ¶
func (f *CitiesFilter) AddParam(name CitiesFilterParamName, value string) *CitiesFilter
func (CitiesFilter) BuildQueryParams ¶
func (f CitiesFilter) BuildQueryParams() map[string]string
type CitiesFilterParamName ¶
type CitiesFilterParamName string
const ( // CitiesFilterCountryCodes Array of country codes in the format ISO_3166-1_alpha-2 CitiesFilterCountryCodes CitiesFilterParamName = "country_codes" // CitiesFilterRegionCode Region code in the CDEK IS CitiesFilterRegionCode CitiesFilterParamName = "region_code" // CitiesFilterKladrRegionCode Region code according to the Russian Classifier of Countries of the World CitiesFilterKladrRegionCode CitiesFilterParamName = "kladr_region_code" // CitiesFilterFiasRegionCode Region code according to the Federal Information Address System CitiesFilterFiasRegionCode CitiesFilterParamName = "fias_region_guid" // CitiesFilterKladrCityCode City code according to the Russian Classifier of Countries of the World CitiesFilterKladrCityCode CitiesFilterParamName = "kladr_code" // CitiesFilterFiasCityCode City code according to the Federal Information Address System CitiesFilterFiasCityCode CitiesFilterParamName = "fias_guid" // City code according to the Federal Information Address System, UUID CitiesFilterPostalCode CitiesFilterParamName = "postal_code" // CitiesFilterCode City code from the CDEK IS CitiesFilterCode CitiesFilterParamName = "code" // CitiesFilterCity City name CitiesFilterCity CitiesFilterParamName = "city" // CitiesFilterSize Limitation on the number of results displayed. Required, if "page" is specified. Default value: 1,000 CitiesFilterSize CitiesFilterParamName = "size" // CitiesFilterPage Number of the results page. Default value: 0 CitiesFilterPage CitiesFilterParamName = "page" // CitiesFilterLang Localization. Default: “rus” CitiesFilterLang CitiesFilterParamName = "lang" // CitiesFilterPaymentLimit Cash-on-delivery amount limit, possible values: 1 – no limit; 0 – cash on delivery is not accepted; // positive value – the cash-on-delivery amount does not exceed this value. CitiesFilterPaymentLimit CitiesFilterParamName = "payment_limit" )
type City ¶
type City struct { Code string `json:"code"` City string `json:"city"` FiasGUID string `json:"fias_guid"` KladrCode string `json:"kladr_code"` CountryCode string `json:"country_code"` Country string `json:"country"` Region string `json:"region"` RegionCode string `json:"region_code"` FiasRegionGUID string `json:"fias_region_guid"` KladrRegionCode string `json:"kladr_region_code"` SubRegion string `json:"sub_region"` PostalCodes []string `json:"postal_codes"` Longitude float64 `json:"longitude"` Latitude float64 `json:"latitude"` TimeZone string `json:"time_zone"` PaymentLimit float64 `json:"payment_limit"` Errors []CityError `json:"errors"` }
City is response List of Cities request
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) Calculator ¶
func (c *Client) Calculator(ctx context.Context, request CalculatorRequest) (CalculatorResponse, error)
func (Client) GetOffices ¶
type ErrorApiV1 ¶
type ErrorApiV2 ¶ added in v0.0.3
type ErrorsApiV1 ¶
type ErrorsApiV1 struct {
Errors []ErrorApiV1 `json:"error"`
}
type Good ¶
type Good struct { Weight int `json:"weight"` // Общий вес (в граммах), Required Length int `json:"length,omitempty"` // Габариты упаковки. Длина (в сантиметрах) Width int `json:"width,omitempty"` // Габариты упаковки. Ширина (в сантиметрах) Height int `json:"height,omitempty"` // Габариты упаковки. Высота (в сантиметрах) }
Good Package dimensions
type Office ¶
type Office struct { Code string `json:"code"` Name string `json:"name"` Location OfficeLocation `json:"location"` AddressComment string `json:"address_comment"` NearestStation string `json:"nearest_station"` MetroStation string `json:"nearest_metro_station"` WorkTime string `json:"work_time"` Phones []PhoneDetail `json:"phones"` Email string `json:"email"` Note string `json:"note"` Type string `json:"type"` OwnerCode string `json:"owner_сode"` TakeOnly bool `json:"take_only"` IsDressingRoom bool `json:"is_dressing_room"` HaveCashless bool `json:"have_cashless"` HaveCash bool `json:"have_cash"` AllowedCod bool `json:"allowed_cod"` Site string `json:"site"` OfficeImage []OfficeImage `json:"office_image_list"` WorkTimeList []WorkTimeItem `json:"work_time_list"` WorkTimeExceptions []WorkTimeExcept `json:"work_time_exceptions"` WeightMin float64 `json:"weight_min"` WeightMax float64 `json:"weight_max"` Errors []ErrorApiV2 }
type OfficeImage ¶
OfficeImage contains all photos of the office (except for a photo showing how to get to it)
type OfficeLocation ¶ added in v0.0.3
type OfficeLocation struct { CountryCode string `json:"country_code"` RegionCode int `json:"region_code"` RegionName string `json:"region"` CityCode int `json:"city_code"` City string `json:"city"` PostalCode string `json:"postal_сode"` Longitude float64 `json:"longitude"` Latitude float64 `json:"latitude"` Address string `json:"address"` AddressFull string `json:"address_full"` }
type OfficesFilter ¶
type OfficesFilter struct {
// contains filtered or unexported fields
}
func (*OfficesFilter) AddParam ¶
func (f *OfficesFilter) AddParam(name OfficesFilterParamName, value string) *OfficesFilter
func (OfficesFilter) BuildQueryParams ¶
func (f OfficesFilter) BuildQueryParams() map[string]string
type OfficesFilterParamName ¶
type OfficesFilterParamName string
const ( //OfficesFilterCityPostCode Почтовый индекс города, для которого необходим список ПВЗ OfficesFilterCityPostCode OfficesFilterParamName = "postal_code" //OfficesFilterCityID Код города по базе СДЭК OfficesFilterCityID OfficesFilterParamName = "city_code" //OfficesFilterType Тип пункта выдачи, по умолчанию «PVZ». OfficesFilterType OfficesFilterParamName = "type" //OfficesFilterCountryIso Код страны в формате ISO_3166-1_alpha-2 OfficesFilterCountryIso OfficesFilterParamName = "country_code" //OfficesFilterRegionID Код региона по базе СДЭК OfficesFilterRegionID OfficesFilterParamName = "region_code" //OfficesFilterHaveCashless Наличие терминала оплаты («1», «true» - есть; «0», «false» - нет.) OfficesFilterHaveCashless OfficesFilterParamName = "have_cashless" //OfficesFilterHaveCash Есть прием наличных («1», «true» - есть; «0», «false» - нет.) OfficesFilterHaveCash OfficesFilterParamName = "have_cashless" //OfficesFilterAllowedCod Разрешен наложенный платеж («1», «true» - да; «0», «false» - нет.) OfficesFilterAllowedCod OfficesFilterParamName = "allowed_cod" //OfficesFilterIsDressingRoom Наличие примерочной («1», «true» - есть; «0», «false» - нет.) OfficesFilterIsDressingRoom OfficesFilterParamName = "is_dressing_room" //OfficesFilterWeightMin Минимальный вес в кг, который принимает ПВЗ. //При переданном значении будут выводиться ПВЗ с минимальным весом до указанного значения OfficesFilterWeightMin OfficesFilterParamName = "weight_min" //OfficesFilterWeightMax Максимальный вес, который может принять ПВЗ OfficesFilterWeightMax OfficesFilterParamName = "weight_max" //OfficesFilterLang Локализация ПВЗ. По-умолчанию "rus" OfficesFilterLang OfficesFilterParamName = "lang" //OfficesFilterTakeOnly Является ли ПВЗ только пунктом выдачи («1», «true» - да; «0», «false» - нет.) OfficesFilterTakeOnly OfficesFilterParamName = "take_only" )
type PhoneDetail ¶
type WorkTimeExcept ¶ added in v0.0.3
type WorkTimeItem ¶ added in v0.0.3
WorkTimeItem opening hours for every day
Click to show internal directories.
Click to hide internal directories.