vivaticket: send form url in dedicated HTTP Header (#31877)

This commit is contained in:
Serghei Mihai 2019-04-01 09:59:07 +02:00
parent 4f491a22e4
commit 585d1a1656
2 changed files with 13 additions and 4 deletions

View File

@ -116,6 +116,11 @@ EVENTBOOK_SCHEMA = {
"description": "quantity",
"type": "integer",
"required": True
},
"form_url": {
"description": "form url",
"type": "string",
"required": True
}
}
}
@ -165,14 +170,14 @@ class VivaTicket(BaseResource):
return response
return self.requests.get(url, params=params)
def post(self, endpoint, payload):
def post(self, endpoint, payload, headers=None):
url = urlparse.urljoin(self.url, endpoint)
payload.update({'Key': self.get_apikey()})
response = self.requests.post(url, json=payload)
response = self.requests.post(url, json=payload, headers=headers)
# api key is expired
if response.status_code == 401:
payload['key'] = self.get_apikey(True)
return self.requests.post(url, json=payload)
return self.requests.post(url, json=payload, headers=headers)
return response
def get_setting(self, endpoint, **kwargs):
@ -260,5 +265,7 @@ class VivaTicket(BaseResource):
'endDateTime': post_data['datetime']
}]
}
r = self.post('Booking/Post', {'Booking': booking})
headers = {'X-Vivaticket-Form-URL': post_data['form_url']}
r = self.post('Booking/Post', {'Booking': booking}, headers=headers)
self.logger.debug('Book response: %r' % r.text)
return {'data': r.json()}

View File

@ -312,6 +312,7 @@ def test_book(mocked_get, mocked_put, mocked_post, app, connector):
payload['theme'] = '001'
payload['room'] = 'v001'
payload['quantity'] = 1
payload['form_url'] = "http://mysite.com/form/id/"
response = app.post_json(url, params=payload, status=400)
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']
payload['datetime'] = '2019-01-15T10:00'
@ -327,4 +328,5 @@ def test_book(mocked_get, mocked_put, mocked_post, app, connector):
assert mocked_post.call_args[1]['json']['Booking']['startDateTime'] == '2019-01-15T10:00'
assert mocked_post.call_args[1]['json']['Booking']['endDateTime'] == '2019-01-15T10:00'
assert mocked_post.call_args[1]['json']['Booking']['contact'] == {'InternalCode': '0000000273'}
assert mocked_post.call_args[1]['headers'] == {'X-Vivaticket-Form-URL': 'http://mysite.com/form/id/'}
assert response.json['data']['bookingCode'] == 'II0000013'