From 8525c08464aea51f39ee907d49af8c49e0c4b6f7 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 24 Mar 2022 17:42:20 +0100 Subject: [PATCH 9/9] wip : report xsd type in json schema --- passerelle/apps/soap/models.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/passerelle/apps/soap/models.py b/passerelle/apps/soap/models.py index 19cef471..82de8059 100644 --- a/passerelle/apps/soap/models.py +++ b/passerelle/apps/soap/models.py @@ -183,6 +183,7 @@ class SOAPConnector(BaseResource, HTTPResource): # simplify schema: when a type contains a unique element, it will try # to match any dict or list with it on input and will flatten the # schema on output. + qname = str(xsd_type.qname).replace('{http://www.w3.org/2001/XMLSchema}', 'xsd:') if ( isinstance(xsd_type, zeep.xsd.ComplexType) and len(xsd_type.elements) == 1 @@ -193,7 +194,7 @@ class SOAPConnector(BaseResource, HTTPResource): return { 'type': 'array', 'items': self.type2schema(xsd_type.elements[0][1].type, compress=compress), - 'description': f'{xsd_type.qname}', + 'description': f'{qname}', } return self.type2schema(xsd_type.elements[0][1].type, compress=compress) if isinstance(xsd_type, zeep.xsd.ComplexType): @@ -201,7 +202,7 @@ class SOAPConnector(BaseResource, HTTPResource): schema = { 'type': 'object', 'properties': properties, - 'description': f'{xsd_type.qname}', + 'description': f'{qname}', } for key, element in xsd_type.elements: if element.min_occurs > 0: @@ -211,8 +212,8 @@ class SOAPConnector(BaseResource, HTTPResource): element_schema = {'type': 'array', 'items': element_schema} properties[key] = element_schema if not properties: - return {'type': 'null', 'description': f'{xsd_type.qname}'} + return {'type': 'null', 'description': f'{qname}'} return schema if isinstance(xsd_type, zeep.xsd.BuiltinType): - return {'type': 'string', 'description': f'{xsd_type.qname}'} - return {'description': f'!!! convertible {xsd_type.qname} !!!'} + return {'type': 'string', 'description': f'{qname}'} + return {'description': f'!!! convertible {qname} !!!'} -- 2.35.1