atal_rest: add worksrequest-intervention-status endpoint (#82948)
gitea/passerelle/pipeline/head This commit looks good
Details
gitea/passerelle/pipeline/head This commit looks good
Details
This commit is contained in:
parent
c148f6ae03
commit
f336d7a952
|
@ -152,6 +152,14 @@ STATUS_MAP = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
INTERVENTION_STATUS_MAP = {
|
||||||
|
1: 'Pas commencé',
|
||||||
|
2: 'En cours',
|
||||||
|
4: 'Terminé',
|
||||||
|
5: 'Fermé',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def to_ds(record):
|
def to_ds(record):
|
||||||
record['id'] = record['Id']
|
record['id'] = record['Id']
|
||||||
record['text'] = record['Name']
|
record['text'] = record['Name']
|
||||||
|
@ -471,3 +479,18 @@ class AtalREST(BaseResource, HTTPResource):
|
||||||
resp_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', ''), '')
|
resp_data['RequestStateLabel'] = STATUS_MAP.get(resp_data.get('RequestState', ''), '')
|
||||||
return {'data': resp_data}
|
return {'data': resp_data}
|
||||||
|
|
||||||
|
@endpoint(
|
||||||
|
methods=['get'],
|
||||||
|
name='worksrequest-intervention-status',
|
||||||
|
description=_('Get the status of a works request intervention'),
|
||||||
|
parameters={
|
||||||
|
'number': {
|
||||||
|
'example_value': 'DIT23070011',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
)
|
||||||
|
def worksrequest_intervention_status(self, request, number):
|
||||||
|
resp_data = self._call('/api/WorksRequests/GetInterventionStates', params={'number': number})[0]
|
||||||
|
resp_data['WorkStateLabel'] = INTERVENTION_STATUS_MAP.get(resp_data.get('WorkState', ''), '')
|
||||||
|
return {'data': resp_data}
|
||||||
|
|
|
@ -71,6 +71,28 @@ def test_worksrequest_status(app, connector):
|
||||||
assert json_resp['data']['RequestStateLabel'] == 'En attente'
|
assert json_resp['data']['RequestStateLabel'] == 'En attente'
|
||||||
|
|
||||||
|
|
||||||
|
def test_worksrequest_intervention_status(app, connector):
|
||||||
|
with responses.RequestsMock() as rsps:
|
||||||
|
rsps.get(
|
||||||
|
'https://atal.invalid/api/WorksRequests/GetInterventionStates',
|
||||||
|
status=200,
|
||||||
|
json=[
|
||||||
|
{
|
||||||
|
'RequestId': 'cc8b7f6b-8ccf-4938-a648-09678feda679',
|
||||||
|
'InterventionState': 2,
|
||||||
|
'WorkState': 2,
|
||||||
|
'InterventionNumber': 'IN23090003',
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
resp = app.get('/atal-rest/test/worksrequest-intervention-status?number=DIT23070011')
|
||||||
|
json_resp = resp.json
|
||||||
|
assert json_resp['err'] == 0
|
||||||
|
assert json_resp['data']['InterventionState'] == 2
|
||||||
|
assert json_resp['data']['WorkState'] == 2
|
||||||
|
assert json_resp['data']['WorkStateLabel'] == 'En cours'
|
||||||
|
|
||||||
|
|
||||||
def test_worksrequests_single_attachment(app, connector):
|
def test_worksrequests_single_attachment(app, connector):
|
||||||
with responses.RequestsMock() as rsps:
|
with responses.RequestsMock() as rsps:
|
||||||
rsps.post('https://atal.invalid/api/WorksRequests/1/Attachments', status=200, body=b'')
|
rsps.post('https://atal.invalid/api/WorksRequests/1/Attachments', status=200, body=b'')
|
||||||
|
|
Loading…
Reference in New Issue