Skip to content

Commit

Permalink
Implemented Air_MultiAvailability
Browse files Browse the repository at this point in the history
  • Loading branch information
DerMika committed Sep 16, 2016
1 parent a8951f8 commit 6805eee
Show file tree
Hide file tree
Showing 54 changed files with 3,166 additions and 38 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# 2016-09

* Implemented SalesReports_DisplayQueryReport
* Implemented Air_MultiAvailability
* Added support for multiple WSDL's (interfaces) in a WSAP (https://github.com/amabnl/amadeus-ws-client/issues/5)
* PSR-2 code style enforced via StyleCI

Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,8 @@ For now, if you want the bleeding edge, point your composer.json towards `dev-de
- [How to](docs/how-to.rst)
- [Examples](docs/samples.rst)

---------------------------------------

[Changelog](CHANGELOG.md)

[Example applications](docs/sample-applications.rst)
2 changes: 1 addition & 1 deletion docs/list-of-supported-messages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ This is the list of messages that are at least partially supported at this time:
- Fare_InformativePricingWithoutPNR
- Fare_ConvertCurrency
- Fare_CheckRules
- Air_MultiAvailability
- Air_SellFromRecommendation
- Air_FlightInfo
- Air_RetrieveSeatMap
Expand All @@ -38,7 +39,6 @@ This is the list of messages that are at least partially supported at this time:

On the to-do list / work in progress:

- Air_MultiAvailability
- Fare_InformativeBestPricingWithoutPNR
- Fare_PricePNRWithLowerFares
- Fare_PricePNRWithLowestFare
Expand Down
7 changes: 7 additions & 0 deletions docs/sample-applications.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
===================
SAMPLE APPLICATIONS
===================

Here are some examples of applications built using this library:

* `Amadeus Cryptic console emulator <https://github.com/tmconsulting/amadeus-console-emulator>`_.
54 changes: 54 additions & 0 deletions docs/samples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,60 @@ Convert 200 Euro to US Dollars in the exchange rate of 25th December 2015 *(this
Air
***

---------------------
Air_MultiAvailability
---------------------

To request a simple Air_MultiAvailability:

.. code-block:: php
use Amadeus\Client\RequestOptions\AirMultiAvailabilityOptions;
use Amadeus\Client\RequestOptions\Air\MultiAvailability\RequestOptions;
use Amadeus\Client\RequestOptions\Air\MultiAvailability\FrequentTraveller;
$opt = new AirMultiAvailabilityOptions([
'actionCode' => AirMultiAvailabilityOptions::ACTION_AVAILABILITY,
'requestOptions' => [
new RequestOptions([
'departureDate' => \DateTime::createFromFormat('Ymd-His', '20170320-000000', new \DateTimeZone('UTC')),
'from' => 'BRU',
'to' => 'LIS',
'requestType' => RequestOptions::REQ_TYPE_NEUTRAL_ORDER
])
]
]);
$availabilityResult = $client->airMultiAvailability($opt);
Nice - New York Schedule request, connection via Paris, flying on Air France, for 5 people,
in premium or regular Economy, sort by arrival time:

.. code-block:: php
use Amadeus\Client\RequestOptions\AirMultiAvailabilityOptions;
use Amadeus\Client\RequestOptions\Air\MultiAvailability\RequestOptions;
use Amadeus\Client\RequestOptions\Air\MultiAvailability\FrequentTraveller;
$opt = new AirMultiAvailabilityOptions([
'actionCode' => AirMultiAvailabilityOptions::ACTION_SCHEDULE,
'requestOptions' => [
new RequestOptions([
'departureDate' => \DateTime::createFromFormat('Ymd-His', '20170215-140000', new \DateTimeZone('UTC')),
'from' => 'NCE',
'to' => 'NYC',
'cabinCode' => RequestOptions::CABIN_ECONOMY_PREMIUM_MAIN,
'includedConnections' => ['PAR'],
'nrOfSeats' => 5,
'includedAirlines' => ['AF'],
'requestType' => RequestOptions::REQ_TYPE_BY_ARRIVAL_TIME
])
]
]);
$availabilityResult = $client->airMultiAvailability($opt);
--------------------------
Air_SellFromRecommendation
--------------------------
Expand Down
18 changes: 15 additions & 3 deletions src/Amadeus/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,9 @@
*
* TODO:
* - support older versions of SoapHeader (1)
* - implement calls for full online booking flow:
* Air_MultiAvailability
*
* - implement more PNR_AddMultiElements:
* OSI segment
* - implement messages on supported messages todo section
*
* @package Amadeus
* @author Dieter Devlieghere <dieter.devlieghere@benelux.amadeus.com>
Expand Down Expand Up @@ -535,6 +533,20 @@ public function fareConvertCurrency(RequestOptions\FareConvertCurrencyOptions $o
return $this->callMessage($msgName, $options, $messageOptions);
}

/**
* Air_MultiAvailability
*
* @param RequestOptions\AirMultiAvailabilityOptions $options
* @param array $messageOptions
* @return Result
*/
public function airMultiAvailability(RequestOptions\AirMultiAvailabilityOptions $options, $messageOptions = [])
{
$msgName = 'Air_MultiAvailability';

return $this->callMessage($msgName, $options, $messageOptions);
}

/**
* Air_SellFromRecommendation
*
Expand Down
16 changes: 15 additions & 1 deletion src/Amadeus/Client/RequestCreator/Base.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
use Amadeus\Client\InvalidMessageException;
use Amadeus\Client\Params\RequestCreatorParams;
use Amadeus\Client\RequestOptions\AirFlightInfoOptions;
use Amadeus\Client\RequestOptions\AirMultiAvailabilityOptions;
use Amadeus\Client\RequestOptions\AirRetrieveSeatMapOptions;
use Amadeus\Client\RequestOptions\AirSellFromRecommendationOptions;
use Amadeus\Client\RequestOptions\CommandCrypticOptions;
Expand Down Expand Up @@ -358,6 +359,18 @@ protected function createFareInformativePricingWithoutPNR(FareInformativePricing
}

/**
* Air_MultiAvailability
*
* @param AirMultiAvailabilityOptions $params
* @return Struct\Air\MultiAvailability
*/
protected function createAirMultiAvailability(AirMultiAvailabilityOptions $params)
{
return new Struct\Air\MultiAvailability($params);
}

/**
* Air_SellFromRecommendation
*
* @param AirSellFromRecommendationOptions $params
* @return Struct\Air\SellFromRecommendation
Expand All @@ -368,6 +381,7 @@ protected function createAirSellFromRecommendation(AirSellFromRecommendationOpti
}

/**
* Air_FlightInfo
*
* @param AirFlightInfoOptions $params
* @return Struct\Air\FlightInfo
Expand All @@ -387,7 +401,7 @@ protected function createAirRetrieveSeatMap(AirRetrieveSeatMapOptions $params)
}

/**
* makeCommandCryptic
* Command_Cryptic
*
* @param CommandCrypticOptions $params
* @return Struct\Command\Cryptic
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php
/**
* Amadeus
*
* Copyright 2015 Amadeus Benelux NV
*/

namespace Amadeus\Client\RequestOptions\Air\MultiAvailability;

use Amadeus\Client\LoadParamsFromArray;

/**
* FrequentTraveller
*
* @package Amadeus\Client\RequestOptions\Air\MultiAvailability
* @author Dieter Devlieghere <dieter.devlieghere@benelux.amadeus.com>
*/
class FrequentTraveller extends LoadParamsFromArray
{
const REF_FREQUENT_FLYER = "FF";

const REF_CORPORATE_FREQUENT_FLYER = "CFF";

/**
* @var string
*/
public $firstName;

/**
* @var string
*/
public $lastName;

/**
* Airline
*
* @var string
*/
public $carrier;

/**
* Frequent flyer number
*
* @var string
*/
public $number;

/**
* What type of frequent flyer?
*
* self::REF_*
*
* @var string
*/
public $referenceType;
}
Loading

0 comments on commit 6805eee

Please sign in to comment.