planitec: add getreservationsinfo endpoint (#31625)
This commit is contained in:
parent
1660716b26
commit
561b159936
|
@ -674,6 +674,23 @@ class PlanitechConnector(BaseResource):
|
|||
self._get_places_referential(), kwargs)
|
||||
}
|
||||
|
||||
@endpoint(description_get=_('Get reservation infos'), methods=['get'], perm='can_access')
|
||||
def getreservationsinfo(self, request, reservation_id):
|
||||
params = {'reservationIdentifiers': [float(reservation_id)]}
|
||||
data = self._call_planitech(self.requests.post, 'getReservationsInfo', params)
|
||||
data = data.get('requestedReservations', [])
|
||||
|
||||
res = {}
|
||||
# Delete circular references that are not json serializable
|
||||
if data:
|
||||
res = data[0]
|
||||
if 'activity' in res and 'reservations' in res['activity']:
|
||||
del res['activity']['reservations']
|
||||
if 'contractor' in res and 'reservations' in res['contractor']:
|
||||
del res['contractor']['reservations']
|
||||
|
||||
return {'data': res}
|
||||
|
||||
@endpoint(description_get=_('Get reservation types'), methods=['get'], perm='can_access')
|
||||
def getreservationtypes(self, request):
|
||||
return {'data': self.generic_call('getReservationTypes', 'types')}
|
||||
|
|
|
@ -429,6 +429,37 @@ def test_update_reservation(app, connector, monkeypatch):
|
|||
assert json_resp['err_desc'] == "'reservation_id' is a required property"
|
||||
|
||||
|
||||
def test_get_reservations_infos(app, connector, monkeypatch):
|
||||
mock_call_planitech = mock_planitech(
|
||||
monkeypatch,
|
||||
return_value={
|
||||
'requestedReservations': [
|
||||
{
|
||||
'reservation': 'data',
|
||||
'activity': {
|
||||
'reservations': 'activity_data'
|
||||
},
|
||||
'contractor': {
|
||||
'reservations': 'contractor_data'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
)
|
||||
response = app.get('/planitech/slug-planitech/getreservationsinfo/?reservation_id=1')
|
||||
json_resp = response.json
|
||||
assert json_resp['err'] == 0
|
||||
assert json_resp['data'] == {
|
||||
'reservation': 'data',
|
||||
'activity': {},
|
||||
'contractor': {},
|
||||
}
|
||||
assert mock_call_planitech.call_args[0][1] == 'getReservationsInfo'
|
||||
assert mock_call_planitech.call_args[0][2] == {
|
||||
'reservationIdentifiers': [1.0]
|
||||
}
|
||||
|
||||
|
||||
def freegaps_data():
|
||||
referential = {
|
||||
2.0: {
|
||||
|
|
Loading…
Reference in New Issue