0001-vivaticket-add-support-for-booking-end-datetime-3403.patch
passerelle/apps/vivaticket/models.py | ||
---|---|---|
91 | 91 |
"type": "string", |
92 | 92 |
"required": True |
93 | 93 |
}, |
94 |
"datetime": { |
|
95 |
"description": "event datetime", |
|
94 |
"start_datetime": { |
|
95 |
"description": "event start datetime", |
|
96 |
"type": "string", |
|
97 |
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$", |
|
98 |
"required": True |
|
99 |
}, |
|
100 |
"end_datetime": { |
|
101 |
"description": "event end datetime", |
|
96 | 102 |
"type": "string", |
97 | 103 |
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$", |
98 | 104 |
"required": True |
... | ... | |
258 | 264 |
def book(self, request, post_data, nameid=None): |
259 | 265 |
booking = { |
260 | 266 |
'externalCode': post_data['id'], |
261 |
'startDateTime': post_data['datetime'], |
|
262 |
'endDateTime': post_data['datetime'], |
|
267 |
'startDateTime': post_data['start_datetime'],
|
|
268 |
'endDateTime': post_data['end_datetime'],
|
|
263 | 269 |
'comment': post_data.get('comment', ''), |
264 | 270 |
'contact': self.get_or_create_contact(post_data, nameid), |
265 | 271 |
'roomList': [{ |
... | ... | |
267 | 273 |
'roomCode': post_data['room'], |
268 | 274 |
'themeCode': post_data['theme'], |
269 | 275 |
'quantity': post_data['quantity'], |
270 |
'startDateTime': post_data['datetime'], |
|
271 |
'endDateTime': post_data['datetime'] |
|
276 |
'startDateTime': post_data['start_datetime'],
|
|
277 |
'endDateTime': post_data['end_datetime']
|
|
272 | 278 |
}] |
273 | 279 |
} |
274 | 280 |
headers = {'X-Vivaticket-Form-URL': post_data['form_url']} |
tests/test_vivaticket.py | ||
---|---|---|
307 | 307 |
url = utils.generic_endpoint_url('vivaticket', 'book') |
308 | 308 |
payload = {'id': 'formid', 'email': 'foo@example.com'} |
309 | 309 |
response = app.post_json(url, params=payload, status=400) |
310 |
payload['datetime'] = '2019-01-15' |
|
310 |
payload['start_datetime'] = '2019-01-15' |
|
311 |
payload['end_datetime'] = '2019-01-15' |
|
311 | 312 |
payload['event'] = '01' |
312 | 313 |
payload['theme'] = '001' |
313 | 314 |
payload['room'] = 'v001' |
... | ... | |
316 | 317 |
payload['form_url'] = "http://mysite.com/form/id/" |
317 | 318 |
response = app.post_json(url, params=payload, status=400) |
318 | 319 |
assert "does not match '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$" in response.json['err_desc'] |
319 |
payload['datetime'] = '2019-01-15T10:00' |
|
320 |
payload['start_datetime'] = '2019-01-15T10:00' |
|
321 |
payload['end_datetime'] = '2019-01-15T11:00' |
|
320 | 322 |
# first return the API key, then the result of the booking creation |
321 | 323 |
mocked_post.side_effect = [ |
322 | 324 |
utils.FakedResponse(content=KEY_RESPONSE, status_code=200), |
... | ... | |
327 | 329 |
assert mocked_post.call_args[1]['json']['Key'] == '86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074' |
328 | 330 |
assert mocked_post.call_args[1]['json']['Booking']['externalCode'] == 'formid' |
329 | 331 |
assert mocked_post.call_args[1]['json']['Booking']['startDateTime'] == '2019-01-15T10:00' |
330 |
assert mocked_post.call_args[1]['json']['Booking']['endDateTime'] == '2019-01-15T10:00'
|
|
332 |
assert mocked_post.call_args[1]['json']['Booking']['endDateTime'] == '2019-01-15T11:00'
|
|
331 | 333 |
assert mocked_post.call_args[1]['json']['Booking']['comment'] == 'My comment' |
332 | 334 |
assert mocked_post.call_args[1]['json']['Booking']['contact'] == {'InternalCode': '0000000273'} |
333 | 335 |
assert mocked_post.call_args[1]['headers'] == {'X-Vivaticket-Form-URL': 'http://mysite.com/form/id/'} |
334 |
- |