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):
|
||||
record['id'] = record['Id']
|
||||
record['text'] = record['Name']
|
||||
|
@ -471,3 +479,18 @@ class AtalREST(BaseResource, HTTPResource):
|
|||
resp_data = self._call('api/WorksRequests/%s' % worksrequests_id)
|
||||
resp_data['RequestStateLabel'] = STATUS_MAP.get(resp_data.get('RequestState', ''), '')
|
||||
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'
|
||||
|
||||
|
||||
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):
|
||||
with responses.RequestsMock() as rsps:
|
||||
rsps.post('https://atal.invalid/api/WorksRequests/1/Attachments', status=200, body=b'')
|
||||
|
|
Loading…
Reference in New Issue