Skip to content

Commit b882a92

Browse files
committed
Add Support for Transfer Booking API
1 parent ba9dc76 commit b882a92

File tree

7 files changed

+50
-0
lines changed

7 files changed

+50
-0
lines changed

README.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,9 @@ List of supported endpoints
353353
# Transfer Offers Search
354354
amadeus.shopping.transfer_offers_search.post(body)
355355
356+
# Transfer Create Order
357+
amadeus.ordering.transfer_orders.post(body, offerId='1000000000')
358+
356359
Development & Contributing
357360
--------------------------
358361

amadeus/namespaces/_ordering.py

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 TransferOrders
3+
4+
5+
class Ordering(Decorator, object):
6+
def __init__(self, client):
7+
Decorator.__init__(self, client)
8+
self.transfer_orders = TransferOrders(client)

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: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from ._transfer_orders import TransferOrders
2+
3+
__all__ = ['TransferOrders']
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='1000000000')
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)

docs/index.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,3 +259,9 @@ Airline/Destinations
259259

260260
.. autoclass:: amadeus.airline.Destinations
261261
:members: get
262+
263+
Ordering/Transfers
264+
================
265+
266+
.. autoclass:: amadeus.Ordering.TransferOrders
267+
:members: post

specs/namespaces/test_namespaces.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def test_expected_paths(client):
6868
assert client.duty_of_care.diseases.covid19_report is not None
6969
assert client.airline.destinations is not None
7070
assert client.shopping.transfer_offers_search is not None
71+
assert client.ordering.transfer_orders is not None
7172

7273

7374
def test_expected_get_methods(client):
@@ -551,3 +552,11 @@ def test_shopping_transfer_offers_search_post(client_setup):
551552
client_setup.post.assert_called_with(
552553
'/v1/shopping/transfer-offers', {'foo': 'bar'}
553554
)
555+
556+
557+
def test_ordering_transfer_orders_post(client_setup):
558+
client_setup.ordering.transfer_orders.post(
559+
{'foo': 'bar'}, offerId='1')
560+
client_setup.post.assert_called_with(
561+
'/v1/ordering/transfer-orders?'+'offerId=1', {'foo': 'bar'}
562+
)

0 commit comments

Comments
 (0)