From 0e2cbe5b00bcbdd93d3b04b2d22ed410b03212cf Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Sat, 19 May 2018 16:05:39 +0200 Subject: [PATCH] api: return formdata URLs in ApiFormdefDirectory.submit() (#23939) So that we do not need another roundtrip to have those informations. --- wcs/api.py | 10 +++++++++- wcs/formdata.py | 3 +++ wcs/formdef.py | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/wcs/api.py b/wcs/api.py index 894a8b0c..5453b85e 100644 --- a/wcs/api.py +++ b/wcs/api.py @@ -334,7 +334,15 @@ class ApiFormdefDirectory(Directory): formdata.store() formdata.perform_workflow() formdata.store() - return json.dumps({'err': 0, 'data': {'id': formdata.id}}) + return json.dumps({ + 'err': 0, + 'data': { + 'id': formdata.id, + 'url': formdata.get_url(), + 'backoffice_url': formdata.get_url(backoffice=True), + 'api_url': formdata.get_api_url(), + } + }) class ApiFormdefsDirectory(Directory): diff --git a/wcs/formdata.py b/wcs/formdata.py index f11661c4..8da7d310 100644 --- a/wcs/formdata.py +++ b/wcs/formdata.py @@ -580,6 +580,9 @@ class FormData(StorableObject): def get_url(self, backoffice = False): return '%s%s/' % (self.formdef.get_url(backoffice=backoffice), self.id) + def get_api_url(self): + return '%s%s/' % (self.formdef.get_api_url(), self.id) + def get_display_id(self): return str(self.id_display or self.id) diff --git a/wcs/formdef.py b/wcs/formdef.py index 0e894a9c..b33dc30f 100644 --- a/wcs/formdef.py +++ b/wcs/formdef.py @@ -520,6 +520,10 @@ class FormDef(StorableObject): base_url = get_publisher().get_frontoffice_url() return '%s/%s/' % (base_url, self.url_name) + def get_api_url(self): + base_url = get_publisher().get_frontoffice_url() + return '%s/api/forms/%s/' % (base_url, self.url_name) + def get_display_id_format(self): return '[formdef_id]-[form_number_raw]' -- 2.17.0