Skip to content

Commit c09aaa2

Browse files
authored
Merge pull request #190 from siddydutta/transfer-apis
Support for Cars and Transfers APIs
2 parents f3c8c7b + 5b16fb4 commit c09aaa2

File tree

15 files changed

+162
-1
lines changed

15 files changed

+162
-1
lines changed

README.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,15 @@ List of supported endpoints
350350
# Airline Routes
351351
amadeus.airline.destinations.get(airlineCode='BA')
352352
353+
# Transfer Offers Search
354+
amadeus.shopping.transfer_offers_search.post(body)
355+
356+
# Transfer Create Order
357+
amadeus.ordering.transfer_orders.post(body, offerId='1000000000')
358+
359+
# Transfer Order Management
360+
amadeus.ordering.transfer_order('ABC').transfers.cancellation.post(body, confirmNbr=123)
361+
353362
Development & Contributing
354363
--------------------------
355364

amadeus/namespaces/_ordering.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from amadeus.client.decorator import Decorator
2+
from amadeus.ordering._transfer_orders import TransferOrders
3+
from amadeus.ordering._transfer_order import TransferOrder
4+
5+
6+
class Ordering(Decorator, object):
7+
def __init__(self, client):
8+
Decorator.__init__(self, client)
9+
self.transfer_orders = TransferOrders(client)
10+
11+
def transfer_order(self, order_id):
12+
return TransferOrder(self.client, order_id)
13+
14+
15+
__all__ = ['TransferOrders', 'TransferOrder']

amadeus/namespaces/_shopping.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from amadeus.shopping._availability import Availability
1010
from amadeus.shopping._hotel_offer_search import HotelOfferSearch
1111
from amadeus.shopping._hotel_offers_search import HotelOffersSearch
12+
from amadeus.shopping._transfer_offers_search import TransferOffersSearch
1213

1314

1415
class Shopping(Decorator, object):
@@ -22,6 +23,7 @@ def __init__(self, client):
2223
self.activities = Activities(client)
2324
self.availability = Availability(client)
2425
self.hotel_offers_search = HotelOffersSearch(client)
26+
self.transfer_offers_search = TransferOffersSearch(client)
2527

2628
def hotel_offer_search(self, offer_id):
2729
return HotelOfferSearch(self.client, offer_id)

amadeus/namespaces/core.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from amadeus.namespaces._location import Location
1111
from amadeus.namespaces._duty_of_care import DutyOfCare
1212
from amadeus.namespaces._airline import Airline
13+
from amadeus.namespaces._ordering import Ordering
1314

1415

1516
class Core(object):
@@ -26,3 +27,4 @@ def __init__(self):
2627
self.location = Location(self)
2728
self.duty_of_care = DutyOfCare(self)
2829
self.airline = Airline(self)
30+
self.ordering = Ordering(self)

amadeus/ordering/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from ._transfer_orders import TransferOrders
2+
from ._transfer_order import TransferOrder
3+
4+
__all__ = ['TransferOrders', 'TransferOrder']
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from amadeus.client.decorator import Decorator
2+
from amadeus.ordering.transfer_orders import Transfers
3+
4+
5+
class TransferOrder(Decorator, object):
6+
def __init__(self, client, order_id):
7+
Decorator.__init__(self, client)
8+
self.transfers = Transfers(client, order_id)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from amadeus.client.decorator import Decorator
2+
3+
from urllib.parse import urlencode
4+
5+
6+
class TransferOrders(Decorator, object):
7+
def post(self, body, **params):
8+
'''
9+
Performs the final booking for a chosen transfer
10+
11+
.. code-block:: python
12+
13+
amadeus.ordering.transfer_orders.post(body, offerId=offer_id)
14+
15+
:rtype: amadeus.Response
16+
:raises amadeus.ResponseError: if the request could not be completed
17+
'''
18+
url = '/v1/ordering/transfer-orders?'
19+
return self.client.post(url + urlencode(params), body)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from ._transfers import Transfers
2+
3+
__all__ = ['Transfers']
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from amadeus.client.decorator import Decorator
2+
from amadeus.ordering.transfer_orders.transfers import Cancellation
3+
4+
5+
class Transfers(Decorator, object):
6+
def __init__(self, client, order_id):
7+
Decorator.__init__(self, client)
8+
self.cancellation = Cancellation(client, order_id)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from ._cancellation import Cancellation
2+
3+
__all__ = ['Cancellation']

0 commit comments

Comments
 (0)