okina: allow multiple subscriptions in one call (#43610)
This commit is contained in:
parent
9c50291e3a
commit
57a7cce616
|
@ -263,6 +263,14 @@ class Okina(BaseResource):
|
|||
raise APIError('payload must be a JSON object', http_status=400)
|
||||
if not isinstance(payload, dict):
|
||||
raise APIError('payload must be a dict', http_status=400)
|
||||
if 'lineIds' in payload:
|
||||
lineids = payload.pop('lineIds')
|
||||
lineids = [lid.strip() for lid in lineids.split(',')]
|
||||
subscriptions = []
|
||||
for lineid in lineids:
|
||||
payload['lineId'] = lineid
|
||||
subscriptions.append(self.request('subscriptions', payload, result_is_list=False))
|
||||
return {'data': subscriptions}
|
||||
return {'data': self.request('subscriptions', payload, result_is_list=False)}
|
||||
|
||||
@endpoint(name='subscription', pattern='^(?P<subscription_id>\d+)/*$',
|
||||
|
|
|
@ -1935,6 +1935,18 @@ def test_okina_suscribe(app, okina):
|
|||
assert resp.json['err'] == 0
|
||||
assert resp.json['data'] == {'foo': 'bar'}
|
||||
|
||||
# multiple subscriptions
|
||||
endpoint = utils.generic_endpoint_url('okina', 'subscription', slug=okina.slug)
|
||||
with mock.patch('passerelle.utils.Request.post') as requests_post:
|
||||
requests_post.return_value = utils.FakedResponse(content='{"sub":"ok"}', status_code=200)
|
||||
resp = app.post_json(endpoint, params={'lineIds': '1 ,2, 3', 'foo': 'bar'})
|
||||
assert requests_post.call_count == 3
|
||||
assert json.loads(requests_post.call_args_list[0][1]['data']) == {'foo': 'bar', 'lineId': '1'}
|
||||
assert json.loads(requests_post.call_args_list[1][1]['data']) == {'foo': 'bar', 'lineId': '2'}
|
||||
assert json.loads(requests_post.call_args_list[2][1]['data']) == {'foo': 'bar', 'lineId': '3'}
|
||||
assert resp.json['err'] == 0
|
||||
assert resp.json['data'] == [{'sub': 'ok'}, {'sub': 'ok'}, {'sub': 'ok'}]
|
||||
|
||||
# qrcode
|
||||
endpoint = '/okina/test/subscriber/123/qrcode'
|
||||
with mock.patch('passerelle.utils.Request.get') as requests_get:
|
||||
|
|
Loading…
Reference in New Issue