Skip to content

Commit b05cd9f

Browse files
authored
Merge pull request #54 from amadeus4dev/generate-photos
Support for AI Generated Photos
2 parents 8cdf6e8 + a76ba3a commit b05cd9f

File tree

9 files changed

+65
-0
lines changed

9 files changed

+65
-0
lines changed

README.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,9 @@ List of supported endpoints
276276
# Airport On-Time Performance
277277
amadeus.airport.predictions.on_time.get(airportCode='JFK', date='2020-03-01')
278278
279+
# AI Generated Photos
280+
amadeus.media.files.generated_photos.get(category='MOUNTAIN')
281+
279282
Development & Contributing
280283
--------------------------
281284

amadeus/media/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from ._files import GeneratedPhotos
2+
3+
__all__ = ['GeneratedPhotos']

amadeus/media/_files.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 .files import GeneratedPhotos
3+
4+
5+
class Files(Decorator, object):
6+
def __init__(self, client):
7+
Decorator.__init__(self, client)
8+
self.generated_photos = GeneratedPhotos(client)

amadeus/media/files/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from ._generated_photos import GeneratedPhotos
2+
3+
4+
__all__ = ['GeneratedPhotos']
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+
4+
class GeneratedPhotos(Decorator, object):
5+
def get(self, **params):
6+
'''
7+
Returns a link with a rendered image of a landscape
8+
9+
.. code-block:: python
10+
11+
amadeus.media.files.generated_photos.get(category='MOUNTAIN')
12+
13+
:param category: the type of landscape to be generated,
14+
``"MOUNTAIN"`` or ``"BEACH"``
15+
16+
:rtype: amadeus.Response
17+
:raises amadeus.ResponseError: if the request could not be completed
18+
'''
19+
return self.client.get('/v2/media/files/generated-photos', **params)

amadeus/namespaces/_media.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.media._files import Files
3+
4+
5+
class Media(Decorator, object):
6+
def __init__(self, client):
7+
Decorator.__init__(self, client)
8+
self.files = Files(client)

amadeus/namespaces/core.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from amadeus.namespaces._shopping import Shopping
44
from amadeus.namespaces._e_reputation import EReputation
55
from amadeus.namespaces._airport import Airport
6+
from amadeus.namespaces._media import Media
67

78

89
class Core(object):
@@ -12,3 +13,4 @@ def __init__(self):
1213
self.shopping = Shopping(self)
1314
self.e_reputation = EReputation(self)
1415
self.airport = Airport(self)
16+
self.media = Media(self)

docs/index.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,9 @@ Airport/Predictions
108108

109109
.. autoclass:: amadeus.airport.predictions.AirportOnTime
110110
:members: get
111+
112+
Media/Files
113+
================
114+
115+
.. autoclass:: amadeus.media.files.GeneratedPhotos
116+
:members: get

specs/namespaces/namespaces_spec.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@
5454
expect(client.airport.predictions).not_to(be_none)
5555
expect(client.airport.predictions.on_time).not_to(be_none)
5656

57+
expect(client.media).not_to(be_none)
58+
expect(client.media.files).not_to(be_none)
59+
expect(client.media.files.generated_photos).not_to(be_none)
60+
5761
with it('should define all expected .get methods'):
5862
client = self.client
5963
expect(client.reference_data.urls.checkin_links.get).not_to(be_none)
@@ -93,6 +97,8 @@
9397

9498
expect(client.airport.predictions.on_time.get).not_to(be_none)
9599

100+
expect(client.media.files.generated_photos.get).not_to(be_none)
101+
96102
with context('testing all calls to the client'):
97103
with before.each:
98104
self.client.get = method_returning(None)
@@ -232,3 +238,9 @@
232238
expect(self.client.get).to(have_been_called_with(
233239
'/v1/airport/predictions/on-time', a='b'
234240
))
241+
242+
with it('.media.files.generated_photos.get'):
243+
self.client.media.files.generated_photos.get(a='b')
244+
expect(self.client.get).to(have_been_called_with(
245+
'/v2/media/files/generated-photos', a='b'
246+
))

0 commit comments

Comments
 (0)