Tento balíček poskytuje PHP klienta pro práci s API Reservatic.
- PHP verze 8.3 nebo vyšší
- cURL rozšíření pro PHP
- JSON rozšíření pro PHP
Pro instalaci tohoto balíčku použijte Composer:
composer require railsformers/reservatic
Zde je příklad, použítí:
<?php
require 'vendor/autoload.php';
use Reservatic\Api;
// Vytvoření instance Reservatic
$reservatic = Api::reservatic('https://api.reservatic.com/api/vase_api', 'your_api_token', 'path/to/certificate.p12', 'certificate_password');
Získá seznam zemí.
Návratová hodnota:
string
: JSON string obsahující seznam zemí.
Příklad:
[
{
"id": 1,
"name": "Česká republika",
"iso_code": "CZ",
"locale": "cs"
}
]
Získá seznam pojišťoven.
Návratová hodnota:
string
: JSON string obsahující seznam pojišťoven.
Příklad:
[
{
"id": 1,
"name": "Neregistrován u zdravotní pojišťovny v ČR",
"shortcut": "Jiná",
"code": 999
}
]
Získá seznam telefonních kódů.
Návratová hodnota:
string
: JSON string obsahující seznam telefonních kódů.
Příklad:
[
{
"id": 1,
"name": "Czech Republic",
"position": 1,
"value": "+420"
}
]
Získá seznam služeb.
Parametry:
int $page
: (Volitelný) Číslo stránky.int $per_page
: (Volitelný) Počet položek na stránku.string $q
: (Volitelný) Hledaný výraz.string $name_cont
: (Volitelný) Hledaný výraz v názvu.
Návratová hodnota:
string
: JSON string obsahující seznam služeb.
Příklad:
[
{
"id": 1,
"name": "Super service",
"aliases": "string",
"address": "Malostranské náměstí 1, Praha, 10000, Česká republika",
"phone_code": "+420",
"phone": "777888999",
"phone_code2": "+420",
"phone2": "777888999",
"logo": "https://example.com/image.png",
"ic": "12345678",
"dic": "12345678",
"icp": "Abc",
"url": "https://example.com/super-service",
"url_iframe": "https://example.com/super-service-iframe",
"place_ids": [1, 2],
"lat": "49.000",
"lng": "21.000",
"required_gdpr": true,
"gdpr_content": "I aggree with GDPR consent",
"external_identifier": "XA123"
}
]
Získá detail služby podle ID.
Parametry:
int $id
: ID služby.
Návratová hodnota:
string
: JSON string obsahující detail služby.
Příklad:
{
"id": 1,
"name": "Super service",
"aliases": "string",
"address": "Malostranské náměstí 1, Praha, 10000, Česká republika",
"phone_code": "+420",
"phone": "777888999",
"phone_code2": "+420",
"phone2": "777888999",
"logo": "https://example.com/image.png",
"ic": "12345678",
"dic": "12345678",
"icp": "Abc",
"url": "https://example.com/super-service",
"url_iframe": "https://example.com/super-service-iframe",
"place_ids": [1, 2],
"lat": "49.000",
"lng": "21.000",
"required_gdpr": true,
"gdpr_content": "I aggree with GDPR consent",
"external_identifier": "XA123",
"location": {
"street": "Vřesinská 2371",
"city": "Ostrava",
"zip": "70800",
"lat": 0,
"lng": 0,
"country_id": 1
},
"service_openings": [
{
"day": 0,
"all_day": false,
"closed": false,
"no_break": false,
"reserved_only": false,
"time_from": "08:00",
"time_to": "18:00",
"break_from": "12:00",
"break_to": "13:00"
}
],
"gopay_iframe_url": "https://example.com/payments"
}
Získá seznam operací pro danou službu.
Parametry:
int $service_id
: ID služby.int $page
: (Volitelný) Číslo stránky.int $per_page
: (Volitelný) Počet položek na stránku.
Návratová hodnota:
string
: JSON string obsahující seznam operací.
Příklad:
[
{
"id": 1,
"name": "Super operation",
"required_fields": ["phone", "birth_cert_no", "holder_id", "date_of_birth", "address", "insurance_company", "spz"],
"minutes": 15,
"real_minutes": 20,
"content": "Amazing operation",
"has_jitsi": false,
"anonymous_without_email": true,
"operation_columns": [
{
"name": "Own Column",
"is_required": false,
"column_type": "options",
"options": ["1", "2", "other"]
}
],
"create_min": 24,
"delete_min": 24,
"create_max": 2,
"create_max_interval_type": "day",
"price_without_vat": 100,
"price_with_vat": 100,
"price_with_vat_label": "100 Kč s DPH",
"pay_methods": ["cash", "card", "card_in_place"],
"currency": "czk",
"who_pays": "free",
"external_identifier": "XA123"
}
]
getHolidays(int $service_id, string $from, string $to, int $user_service_id = null, int $page = null, int $per_page = null)
Získá seznam svátků pro danou službu.
Parametry:
int $service_id
: ID služby.string $from
: Počáteční datum (YYYY-MM-DD).string $to
: Koncové datum (YYYY-MM-DD).int $user_service_id
: (Volitelný) ID uživatelské služby.int $page
: (Volitelný) Číslo stránky.int $per_page
: (Volitelný) Počet položek na stránku.
Návratová hodnota:
string
: JSON string obsahující seznam svátků.
Příklad:
[
{
"id": 1,
"date": "2023-12-25",
"description": "Christmas"
},
{
"id": 2,
"date": "2023-01-01",
"description": "New Year"
}
]
getServiceYears(int $service_id, int $operation_id, int $place_id = null, int $user_service_id = null)
Získá roky pro danou službu a operaci.
Parametry:
int $service_id
: ID služby.int $operation_id
: ID operace.int $place_id
: (Volitelný) ID místa.int $user_service_id
: (Volitelný) ID uživatelské služby.
Návratová hodnota:
string
: JSON string obsahující seznam roků.
Příklad:
[
{
"year": 2023
},
{
"year": 2024
}
]
getServiceMonths(int $service_id, int $operation_id, int $year, int $place_id = null, int $user_service_id = null)
Získá měsíce pro danou službu, operaci a rok.
Parametry:
int $service_id
: ID služby.int $operation_id
: ID operace.int $year
: Rok.int $place_id
: (Volitelný) ID místa.int $user_service_id
: (Volitelný) ID uživatelské služby.
Návratová hodnota:
string
: JSON string obsahující seznam měsíců.
Příklad:
[
{
"month": 1
},
{
"month": 2
}
]
getServiceDays(int $service_id, int $operation_id, int $year, int $month, int $place_id = null, int $user_service_id = null)
Získá dny pro danou službu, operaci, rok a měsíc.
Parametry:
int $service_id
: ID služby.int $operation_id
: ID operace.int $year
: Rok.int $month
: Měsíc.int $place_id
: (Volitelný) ID místa.int $user_service_id
: (Volitelný) ID uživatelské služby.
Návratová hodnota:
string
: JSON string obsahující seznam dnů.
Příklad:
[
{
"day": 1
},
{
"day": 2
}
]
getServiceHours(int $service_id, int $operation_id, string $day, int $place_id = null, int $user_service_id = null)
Získá hodiny pro danou službu, operaci a den.
Parametry:
int $service_id
: ID služby.int $operation_id
: ID operace.string $day
: Den (YYYY-MM-DD).int $place_id
: (Volitelný) ID místa.int $user_service_id
: (Volitelný) ID uživatelské služby.
Návratová hodnota:
string
: JSON string obsahující seznam hodin.
Příklad:
[
{
"label": "17:00 - 20:00",
"free_people": 1,
"starts_at": "2024-09-12T12:25:12+02:00",
"place_id": 1,
"user_service_id": 1
}
]
Získá seznam míst pro danou službu a operaci.
Parametry:
int $service_id
: ID služby.int $operation_id
: (Volitelný) ID operace.int $page
: (Volitelný) Číslo stránky.int $per_page
: (Volitelný) Počet položek na stránku.
Návratová hodnota:
string
: JSON string obsahující seznam míst.
Příklad:
[
{
"id": 1,
"name": "Super kalendář",
"service_id": 1,
"subtext": "Text",
"operation_ids": [1, 2],
"external_identifier": "XA123"
}
]
getReservations(string $from, string $to, string $status = 'kept', int $operation_id = null, int $place_id = null, int $user_service_id = null, int $user_id = null, int $external_app_id = null, string $order_by = 'starts_at', string $order_direction = 'asc', int $page = null, int $per_page = null)
Získá seznam rezervací.
Parametry:
string $from
: Počáteční datum (YYYY-MM-DD).string $to
: Koncové datum (YYYY-MM-DD).string $status
: (Volitelný) Stav rezervace (výchozí: 'kept').int $operation_id
: (Volitelný) ID operace.int $place_id
: (Volitelný) ID místa.int $user_service_id
: (Volitelný) ID uživatelské služby.int $user_id
: (Volitelný) ID uživatele.int $external_app_id
: (Volitelný) ID externí aplikace.string $order_by
: (Volitelný) Řazení podle (výchozí: 'starts_at').string $order_direction
: (Volitelný) Směr řazení (výchozí: 'asc').int $page
: (Volitelný) Číslo stránky.int $per_page
: (Volitelný) Počet položek na stránku.
Návratová hodnota:
string
: JSON string obsahující seznam rezervací.
Příklad:
[
{
"id": 1,
"operation_id": 2,
"service_id": 3,
"calendar_id": 1,
"user_service_id": 3,
"people": 1,
"paid": true,
"pay_by": "cash",
"price": "850.0",
"price_with_vat": 900,
"currency": "euro",
"operation_name": "Očkování V1",
"operation_content": "Očkování description.",
"operation_price": "850 euro",
"operation_who_pays": "customer",
"jitsi_token": "ffdc64f07e68e3647685",
"jitsi_active": false,
"jitsi_room_name": "Videokonference",
"jitsi_domain": "meet.reservatic.com",
"gopay_url": "https://gw.sandbox.gopay.com/gw/v3/token",
"email": "[email protected]",
"first_name": "John",
"last_name": "Doe",
"locale": "cs",
"holder_id": "123456789",
"phone": "777888999",
"phone_code": "+420",
"spz": "",
"birth_certificate_number": "string",
"street": "Nerudova 13",
"city": "Praha",
"zip": "10000",
"country_code_alpha2": "CZ",
"self_paying": false,
"insurance_company_id": 1,
"children": [
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "2010-01-01",
"date_of_birth_iso": "2010-01-01",
"holder_id": 0
}
],
"reservation_columns": [
{
"name": "Ročník",
"column_type": "string",
"value": "1991",
"values": "Red,Green,Blue"
}
],
"can_change": false,
"can_cancel": false,
"starts_at": "2024-09-12T12:25:12+02:00",
"ends_at": "2024-09-12T12:40:12+02:00",
"deleted_at": "2024-09-13T07:51:56.372Z",
"created_at": "2024-09-12T12:25:12+02:00",
"updated_at": "2024-09-12T12:25:12+02:00",
"date_of_birth": "1945-01-01",
"max_delete_at": "2024-09-13T12:25:12+02:00",
"external_app_id": "2a4a5f29-a74b-486e-b4b9-0d6a4254bd77",
"arrived": false,
"pin": "1234"
}
]
getServiceClients(int $service_id, string $q = '', string $user_first_name_cont = '', string $user_last_name_cont = '', string $user_email_cont = '', int $page = null, int $per_page = null)
Získá seznam klientů pro danou službu.
Parametry:
int $service_id
: ID služby.string $q
: (Volitelný) Hledaný výraz.string $user_first_name_cont
: (Volitelný) Hledaný výraz v křestním jménu.string $user_last_name_cont
: (Volitelný) Hledaný výraz v příjmení.string $user_email_cont
: (Volitelný) Hledaný výraz v emailu.int $page
: (Volitelný) Číslo stránky.int $per_page
: (Volitelný) Počet položek na stránku.
Návratová hodnota:
string
: JSON string obsahující seznam klientů.
Příklad:.
```json
[
{
"id": 1,
"imported": false,
"offline": false,
"superclient": false,
"blocked": false,
"desc": false,
"user": {
"id": 1,
"email": "[email protected]",
"first_name": "John",
"last_name": "Doe",
"title_front": "Mgr",
"title_back": "Dis",
"insurance_company_id": 1,
"date_of_birth": "1980-01-01",
"holder_id": "string",
"phone": "777888999",
"phone_code": "420",
"locale": "cs",
"no_emails": false,
"avatar_url": "https://example.com/avatar.png"
}
}
]
Vytvoří nový svátek.
Parametry:
array $data
: Data pro vytvoření svátku.
Návratová hodnota:
string
: JSON string obsahující odpověď API.
Příklad:
{
"id": 1,
"date": "2023-12-25",
"description": "Christmas"
}
Smaže svátek podle ID.
Parametry:
int $service_id
: ID služby.int $holiday_id
: ID svátku.
Návratová hodnota:
string
: JSON string obsahující odpověď API.
Příklad:
{
"message": "Holiday deleted successfully"
}
Smaže rezervaci podle ID.
Parametry:
int $id
: ID rezervace.
Návratová hodnota:
string
: JSON string obsahující odpověď API.
Příklad:
{
"message": "Reservation deleted successfully"
}
Aktualizuje čas rezervace.
Parametry:
int $id
: ID rezervace.string $time
: Nový čas rezervace (YYYY-MM-DDTHH:MM:SSZ).
Návratová hodnota:
string
: JSON string obsahující odpověď API.
Příklad:
{
"id": 1,
"starts_at": "2023-12-25T10:00:00Z"
}
Pokud máte nějaké dotazy nebo problémy, můžete mě kontaktovat na [[email protected]].