PHP code example of kostaschasiotis / octotravel-php

1. Go to this page and download the library: Download kostaschasiotis/octotravel-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

kostaschasiotis / octotravel-php example snippets


indlude('/path-to/vendor/autoload.php');

use KostasChasiotis\OctoTravel\Application\ApiClient\OctoClient;

$client = new OctoClient(
    baseUri: 'https://www.example.com/api_url/',
    headers: [
        'Authorization' => 'Bearer YOUR_API_KEY',
        'Content-Type' => 'application/json'
    ]
);

$supplier = $client->getSupplier();

$products = $client->getProducts();

$products = $client->getProduct('PRODUCT_ID');

use KostasChasiotis\OctoTravel\Domain\Entities\AvailabilityUnit;
use KostasChasiotis\OctoTravel\Domain\Entities\AvailabilityUnits;

$availabilityCalendar = $client->availabilityCalendar(
    'PRODUCT_ID',
    'OPTION_ID',
    new DateTimeImmutable('START_DATE'),
    new DateTimeImmutable('END_DATE'),
    new AvailabilityUnits(
        new AvailabilityUnit(AVAILABILITY_
            //... AvailabilityUnit Details
        ),
        ...
    )
);

use KostasChasiotis\OctoTravel\Domain\Entities\AvailabilityUnit;
use KostasChasiotis\OctoTravel\Domain\Entities\AvailabilityUnits;

$availabilityCheck = $client->availabilityCheck(
    'PRODUCT_ID',
    'OPTION_ID',
    new DateTimeImmutable('START_DATE'),
    new DateTimeImmutable('END_DATE'),
    ['AVAILABILITY_ID'],
    new AvailabilityUnits(
        new AvailabilityUnit(
            //... Unit Details
        ),
        ...
    )
);

use KostasChasiotis\OctoTravel\Domain\Entities\BookingReservationUnitItem;
use KostasChasiotis\OctoTravel\Domain\Entities\BookingReservationUnitItems;
use KostasChasiotis\OctoTravel\Domain\ValueObjects\Uuid;

$bookingReservations = $client->bookingReservation(
    new Uuid('UUID'),
    'PRODUCT_ID',
    'OPTION_ID',
    'AVAILABIITY_ID',
    EXPIRATION_MINUTES,
    'NOTES',
    new BookingReservationUnitItems(
        new BookingReservationUnitItem(
            new Uuid('UUID'),
            'UNIT_ID'
        ),
        ...
    )
);

$bookings = $client->getBookings(
    'RESELLER_REFERENCE',
    'SUPPLIER_REFERENCE',
    new DateTimeImmutable('LOCAL_DATE'),
    new DateTimeImmutable('START_DATE'),
    new DateTimeImmutable('END_DATE'),
    'PRODUCT_ID',
    'OPTION_ID'
);

use KostasChasiotis\OctoTravel\Domain\Entities\BookingConfirmationUnitItem;
use KostasChasiotis\OctoTravel\Domain\Entities\BookingConfirmationUnitItems;
use KostasChasiotis\OctoTravel\Domain\ValueObjects\Uuid;

$bookingConfirmation = $client->bookingConfirmation(
    new Uuid('UUID'),
    EMAIL_RECEIPT_TRUE_FALSE,
    'RESELLER_REFERENCE',
    new Contact(CONTACT_DETAILS),
    new BookingConfirmationUnitItems(
        new BookingConfirmationUnitItem(BOOKING_CONFIRMATION_UNIT_ITEM_DETAILS),
        ...
    )
);

use KostasChasiotis\OctoTravel\Domain\ValueObjects\Uuid;

$bookingCancellation = $client->bookingCancellation(
    new Uuid('UUID'),
    'REASON',
    FORCE_TRUE_OR_FALSE
);

use KostasChasiotis\OctoTravel\Domain\ValueObjects\Uuid;

$booking = $client->getBooking(new Uuid('UUID'));

use KostasChasiotis\OctoTravel\Domain\Entities\BookingConfirmationUnitItem;
use KostasChasiotis\OctoTravel\Domain\Entities\BookingConfirmationUnitItems;
use KostasChasiotis\OctoTravel\Domain\Entities\Contact;
use KostasChasiotis\OctoTravel\Domain\ValueObjects\Uuid;

$bookingUpdate = $client->bookingUpdate(
    new Uuid('UUID'),
    'RESELLER_REFERENCE',
    'PRODUCT_ID',
    'OPTION_ID',
    'AVAILABILITY_ID',
    'EXPIRATION_MINUTES',
    'NOTES',
    SEND_EMAIL_RECEIPT_TRUE_OR_FALSE,
    new BookingConfirmationUnitItems(
        new BookingConfirmationUnitItem(BOOKING_CONFIRMATION_UNIT_ITEM_DETAILS),
        ...
    ),
    new Contact(CONTACT_DETAILS)
);

use KostasChasiotis\OctoTravel\Domain\ValueObjects\Uuid;

$bookingUpdate = $client->extendReservation(
    new Uuid('UUID'),
    EXPIRATION_MINUTES
);
bash
composer