Projet

Général

Profil

0001-api-return-formdata-URLs-in-ApiFormdefDirectory.subm.patch

Benjamin Dauvergne, 05 juin 2018 11:47

Télécharger (3,02 ko)

Voir les différences:

Subject: [PATCH] api: return formdata URLs in ApiFormdefDirectory.submit()
 (#23939)

So that we do not need another roundtrip to have those informations.
 tests/test_api.py |  3 +++
 wcs/api.py        | 10 +++++++++-
 wcs/formdata.py   |  3 +++
 wcs/formdef.py    |  4 ++++
 4 files changed, 19 insertions(+), 1 deletion(-)
tests/test_api.py
535 535
        return signed_url[len('http://example.net'):]
536 536
    resp = get_app(pub).post_json(url(), {'data': {}})
537 537
    assert resp.json['err'] == 0
538
    assert resp.json['data']['url'] == ('http://example.net/test/%s/' % resp.json['data']['id'])
539
    assert resp.json['data']['backoffice_url'] == ('http://example.net/backoffice/management/test/%s/' % resp.json['data']['id'])
540
    assert resp.json['data']['api_url'] == ('http://example.net/api/forms/test/%s/' % resp.json['data']['id'])
538 541
    assert data_class.get(resp.json['data']['id']).status == 'wf-new'
539 542
    assert data_class.get(resp.json['data']['id']).user_id == str(local_user.id)
540 543
    assert data_class.get(resp.json['data']['id']).tracking_code is None
wcs/api.py
334 334
            formdata.store()
335 335
            formdata.perform_workflow()
336 336
            formdata.store()
337
        return json.dumps({'err': 0, 'data': {'id': formdata.id}})
337
        return json.dumps({
338
            'err': 0,
339
            'data': {
340
                'id': formdata.id,
341
                'url': formdata.get_url(),
342
                'backoffice_url': formdata.get_url(backoffice=True),
343
                'api_url': formdata.get_api_url(),
344
            }
345
        })
338 346

  
339 347

  
340 348
class ApiFormdefsDirectory(Directory):
wcs/formdata.py
580 580
    def get_url(self, backoffice = False):
581 581
        return '%s%s/' % (self.formdef.get_url(backoffice=backoffice), self.id)
582 582

  
583
    def get_api_url(self):
584
        return '%s%s/' % (self.formdef.get_api_url(), self.id)
585

  
583 586
    def get_display_id(self):
584 587
        return str(self.id_display or self.id)
585 588

  
wcs/formdef.py
520 520
            base_url = get_publisher().get_frontoffice_url()
521 521
        return '%s/%s/' % (base_url, self.url_name)
522 522

  
523
    def get_api_url(self):
524
        base_url = get_publisher().get_frontoffice_url()
525
        return '%s/api/forms/%s/' % (base_url, self.url_name)
526

  
523 527
    def get_display_id_format(self):
524 528
        return '[formdef_id]-[form_number_raw]'
525 529

  
526
-