atal_rest: add state label (#80653)
gitea/passerelle/pipeline/head This commit looks good Details

This commit is contained in:
Emmanuel Cazenave 2023-08-29 17:40:27 +02:00
parent 9d78d8fcf3
commit 16fc487119
2 changed files with 28 additions and 4 deletions

View File

@ -137,6 +137,22 @@ WORKSREQUESTS_SCHEMA = {
'unflatten': True,
}
STATUS_MAP = {
0: 'En attente',
1: 'En analyse',
2: 'Acceptée',
3: 'Refusée',
4: 'Annulée',
5: 'Ajournée',
6: 'Brouillon',
7: 'Redirigée',
8: 'Prise en compte',
9: 'Clôturée',
13: 'Archivée',
14: 'À spécifier',
15: 'À valider',
}
def to_ds(record):
record['id'] = record['Id']
@ -335,7 +351,9 @@ class AtalREST(BaseResource, HTTPResource):
if param in post_data:
data[atal_param] = post_data[param]
return {'data': self._call('api/WorksRequests', method='post', json_data=data)}
resp_data = self._call('api/WorksRequests', method='post', json_data=data)
resp_data['RequestStateLabel'] = STATUS_MAP.get(resp_data.get('RequestState', ''), '')
return {'data': resp_data}
@endpoint(
description=_('Add an attachment to a works requests'),
@ -446,4 +464,6 @@ class AtalREST(BaseResource, HTTPResource):
},
)
def worksrequest_status(self, request, worksrequests_id):
return {'data': self._call('api/WorksRequests/%s' % worksrequests_id)}
resp_data = self._call('api/WorksRequests/%s' % worksrequests_id)
resp_data['RequestStateLabel'] = STATUS_MAP.get(resp_data.get('RequestState', ''), '')
return {'data': resp_data}

View File

@ -37,7 +37,7 @@ def test_worksrequest(app, connector):
rsps.post(
'https://atal.invalid/api/WorksRequests',
status=200,
json={'id': '1'},
json={'id': '1', 'RequestState': 0},
)
params = {
'desired_date': '2023-06-28',
@ -50,6 +50,8 @@ def test_worksrequest(app, connector):
json_resp = resp.json
assert json_resp['err'] == 0
assert json_resp['data']['id'] == '1'
assert json_resp['data']['RequestState'] == 0
assert json_resp['data']['RequestStateLabel'] == 'En attente'
request_data = json.loads(rsps.calls[0].request.body)
assert request_data['DesiredDate'] == '2023-06-28'
@ -59,12 +61,14 @@ def test_worksrequest_status(app, connector):
rsps.get(
'https://atal.invalid/api/WorksRequests/1',
status=200,
json={'status': 'foo'},
json={'status': 'foo', 'RequestState': 0},
)
resp = app.get('/atal-rest/test/worksrequest-status?worksrequests_id=1')
json_resp = resp.json
assert json_resp['err'] == 0
assert json_resp['data']['status'] == 'foo'
assert json_resp['data']['RequestState'] == 0
assert json_resp['data']['RequestStateLabel'] == 'En attente'
def test_worksrequests_single_attachment(app, connector):