Documentation
¶
Index ¶
- Constants
- Variables
- type APIError
- type APIResponse
- type AccountInfo
- type City
- type Client
- func (c *Client) GetAccountInfo(ctx context.Context) (*APIResponse[AccountInfo], error)
- func (c *Client) GetAllPharmacies(ctx context.Context, page, limit int) (*APIResponse[[]Pharmacy], error)
- func (c *Client) GetCities(ctx context.Context) (*APIResponse[[]City], error)
- func (c *Client) GetCityPharmacies(ctx context.Context, cityID, limit int) (*APIResponse[[]Pharmacy], error)
- func (c *Client) GetDistrictPharmacies(ctx context.Context, cityID, districtID, limit int) (*APIResponse[[]Pharmacy], error)
- func (c *Client) GetDistricts(ctx context.Context, cityID int) (*APIResponse[[]District], error)
- func (c *Client) GetNearbyPharmacies(ctx context.Context, lat, lon float64, isSentry bool, limit int) (*APIResponse[[]Pharmacy], error)
- func (c *Client) GetSentryByCity(ctx context.Context, cityID, limit int) (*APIResponse[[]Pharmacy], error)
- func (c *Client) GetSentryByDistrict(ctx context.Context, cityID, districtID, limit int) (*APIResponse[[]Pharmacy], error)
- func (c *Client) GetSentryPharmacies(ctx context.Context, page, limit int) (*APIResponse[[]Pharmacy], error)
- func (c *Client) UpdateWhitelist(ctx context.Context, ips string) (*APIResponse[map[string]any], error)
- type Coordinates
- type District
- type NearbyRequest
- type Option
- type Pagination
- type Pharmacy
- type WhitelistRequest
Constants ¶
const ( DefaultBaseURL = "https://api.eczaneler.org/v2" DefaultTimeout = 10 * time.Second )
Variables ¶
var ( ErrForbidden = &APIError{StatusCode: 403, Message: "Erişim reddedildi. IP Whitelist listenizi veya lisans sürenizi kontrol edin."} ErrNotFound = &APIError{StatusCode: 404, Message: "İstenen kaynak veya eczane bulunamadı."} ErrRateLimit = &APIError{StatusCode: 429, Message: "İstek limiti aşıldı. Lütfen bir süre sonra tekrar deneyin."} ErrValidation = &APIError{StatusCode: 400, Message: "Geçersiz istek parametresi."} )
Standart hata referansları
Functions ¶
This section is empty.
Types ¶
type APIResponse ¶
type APIResponse[T any] struct { Status string `json:"status"` Message *string `json:"message,omitempty"` Data T `json:"data"` Pagination *Pagination `json:"pagination,omitempty"` }
APIResponse genel API yanıt sarmalayıcısıdır.
type AccountInfo ¶
type AccountInfo struct {
Status *string `json:"status,omitempty"`
Email *string `json:"email,omitempty"`
ActivePackage *string `json:"active_package,omitempty"`
DaysLeft *int `json:"days_left,omitempty"`
EndDate *string `json:"end_date,omitempty"`
AllowedIPs []string `json:"allowed_ips,omitempty"`
RateLimit *string `json:"rate_limit,omitempty"`
}
AccountInfo hesap ve kota bilgileri modelidir.
type City ¶
type City struct {
ID int `json:"id"`
Name string `json:"name"`
Slug *string `json:"slug,omitempty"`
Plate *int `json:"plate,omitempty"`
}
City il veri modelidir.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client Nöbetçi Eczane REST API istemcisidir.
func (*Client) GetAccountInfo ¶
func (c *Client) GetAccountInfo(ctx context.Context) (*APIResponse[AccountInfo], error)
GetAccountInfo hesap ve kota bilgilerini getirir.
func (*Client) GetAllPharmacies ¶
func (c *Client) GetAllPharmacies(ctx context.Context, page, limit int) (*APIResponse[[]Pharmacy], error)
GetAllPharmacies [Premium] Türkiye'deki tüm eczaneleri getirir.
func (*Client) GetCityPharmacies ¶
func (c *Client) GetCityPharmacies(ctx context.Context, cityID, limit int) (*APIResponse[[]Pharmacy], error)
GetCityPharmacies [Premium] bir ildeki tüm eczaneleri getirir.
func (*Client) GetDistrictPharmacies ¶
func (c *Client) GetDistrictPharmacies(ctx context.Context, cityID, districtID, limit int) (*APIResponse[[]Pharmacy], error)
GetDistrictPharmacies [Premium] bir ilçedeki tüm eczaneleri getirir.
func (*Client) GetDistricts ¶
GetDistricts bir ile ait ilçe listesini getirir.
func (*Client) GetNearbyPharmacies ¶
func (c *Client) GetNearbyPharmacies(ctx context.Context, lat, lon float64, isSentry bool, limit int) (*APIResponse[[]Pharmacy], error)
GetNearbyPharmacies GPS koordinatlarına göre en yakın eczaneleri getirir.
func (*Client) GetSentryByCity ¶
func (c *Client) GetSentryByCity(ctx context.Context, cityID, limit int) (*APIResponse[[]Pharmacy], error)
GetSentryByCity belirli bir ile ait nöbetçi eczaneleri getirir (Örn: cityID: 34 - İstanbul).
func (*Client) GetSentryByDistrict ¶
func (c *Client) GetSentryByDistrict(ctx context.Context, cityID, districtID, limit int) (*APIResponse[[]Pharmacy], error)
GetSentryByDistrict belirli bir il ve ilçeye ait nöbetçi eczaneleri getirir (Örn: cityID: 34, districtID: 440).
func (*Client) GetSentryPharmacies ¶
func (c *Client) GetSentryPharmacies(ctx context.Context, page, limit int) (*APIResponse[[]Pharmacy], error)
GetSentryPharmacies tüm nöbetçi eczaneleri sayfalı olarak getirir.
func (*Client) UpdateWhitelist ¶
func (c *Client) UpdateWhitelist(ctx context.Context, ips string) (*APIResponse[map[string]any], error)
UpdateWhitelist izinli IP adresleri listesini (Whitelist) günceller.
type Coordinates ¶
type Coordinates struct {
Latitude *float64 `json:"lat,omitempty"`
Longitude *float64 `json:"lng,omitempty"`
}
Coordinates coğrafi koordinat bilgilerini temsil eder.
type District ¶
type District struct {
ID int `json:"id"`
CityID int `json:"city_id"`
Name string `json:"name"`
Slug *string `json:"slug,omitempty"`
}
District ilçe veri modelidir.
type NearbyRequest ¶
type NearbyRequest struct {
Lat float64 `json:"lat"`
Lon float64 `json:"lon"`
IsSentry int `json:"is_sentry"`
Limit int `json:"limit"`
}
NearbyRequest yakındaki eczaneler sorgusu için istek gövdesidir.
type Option ¶
type Option func(*Client)
Option Client yapılandırma opsiyonu fonksiyonudur.
func WithHTTPClient ¶
WithHTTPClient özel bir http.Client belirler.
type Pagination ¶
type Pagination struct {
Total int `json:"total"`
PerPage int `json:"per_page"`
CurrentPage int `json:"current_page"`
TotalPages int `json:"total_pages"`
HasMore bool `json:"has_more"`
PrevPage *int `json:"prev_page,omitempty"`
NextPage *int `json:"next_page,omitempty"`
}
Pagination sayfalama meta verileridir.
type Pharmacy ¶
type Pharmacy struct {
ID int `json:"id"`
CityID int `json:"city_id"`
DistrictID int `json:"district_id"`
Name string `json:"name"`
Phone *string `json:"phone,omitempty"`
City string `json:"city"`
District string `json:"district"`
Locality *string `json:"locality,omitempty"`
Address string `json:"address"`
AddressDescription *string `json:"address_description,omitempty"`
Coordinates *Coordinates `json:"coordinates,omitempty"`
MapLink *string `json:"map_link,omitempty"`
IsSentry bool `json:"is_sentry"`
WorkingHours *string `json:"workingHours,omitempty"`
DistanceKM *float64 `json:"distance_km,omitempty"`
}
Pharmacy eczane veri modelidir.
type WhitelistRequest ¶
type WhitelistRequest struct {
IPs string `json:"ips"`
}
WhitelistRequest IP whitelist güncelleme istek gövdesidir.