0001-misc-add-parameter-to-declare-schema-of-response-bod.patch
passerelle/apps/api_particulier/models.py | ||
---|---|---|
174 | 174 |
'description': _('requesting user'), |
175 | 175 |
'example_value': 'John Doe (agent)', |
176 | 176 |
}, |
177 |
}, |
|
178 |
json_schema_response={ |
|
179 |
'type': 'object', |
|
180 |
'required': ['err'], |
|
181 |
'properties': { |
|
182 |
'err': {'enum': [0, 1]}, |
|
183 |
'declarant1': { |
|
184 |
'type': 'object', |
|
185 |
'properties': { |
|
186 |
'nom': {'type': 'string'}, |
|
187 |
'nomNaissance': {'type': 'string'}, |
|
188 |
'prenoms': {'type': 'string'}, |
|
189 |
'dateNaissance': {'type': 'string'} |
|
190 |
}, |
|
191 |
}, |
|
192 |
'declarant2': { |
|
193 |
'type': 'object', |
|
194 |
'properties': { |
|
195 |
'nom': {'type': 'string'}, |
|
196 |
'nomNaissance': {'type': 'string'}, |
|
197 |
'prenoms': {'type': 'string'}, |
|
198 |
'dateNaissance': {'type': 'string'} |
|
199 |
} |
|
200 |
}, |
|
201 |
'foyerFiscal': { |
|
202 |
'type': 'object', |
|
203 |
'properties': { |
|
204 |
'annee': {'type': 'integer'}, |
|
205 |
'adresse': {'type': 'string'}, |
|
206 |
} |
|
207 |
}, |
|
208 |
'dateRecouvrement': {'type': 'string', 'pattern': r'^\d{1,2}/\d{1,2}/\d{4}$'}, |
|
209 |
'dateEtablissement': {'type': 'string', 'pattern': r'^\d{1,2}/\d{1,2}/\d{4}$'}, |
|
210 |
'nombreParts': {'type': 'integer'}, |
|
211 |
'situationFamille': {'type': 'string'}, |
|
212 |
'nombrePersonnesCharge': {'type': 'integer'}, |
|
213 |
'revenuBrutGlobal': {'type': 'integer'}, |
|
214 |
'revenuImposable': {'type': 'integer'}, |
|
215 |
'impotRevenuNetAvantCorrections': {'type': 'integer'}, |
|
216 |
'montantImpot': {'type': 'integer'}, |
|
217 |
'revenuFiscalReference': {'type': 'integer'}, |
|
218 |
'anneeImpots': {'type': 'string', 'pattern': r'^[0-9]{4}$'}, |
|
219 |
'anneeRevenus': {'type': 'string', 'pattern': r'^[0-9]{4}$'}, |
|
220 |
'erreurCorrectif': {'type': 'string'}, |
|
221 |
'situationPartielle': {'type': 'string'} |
|
222 |
} |
|
177 | 223 |
}) |
178 | 224 |
def v2_avis_imposition(self, request, numero_fiscal, reference_avis, user=None): |
179 | 225 |
numero_fiscal = numero_fiscal.strip()[:13] |
passerelle/templates/passerelle/manage/endpoint.html | ||
---|---|---|
24 | 24 |
</div> |
25 | 25 |
</li> |
26 | 26 |
{% endif %} |
27 |
{% if endpoint.response_schemas %} |
|
28 |
<li><span class="params-title">{% trans "Response body" %}</span> |
|
29 |
<div class="body-schemas"> |
|
30 |
{% render_body_schemas body_schemas=endpoint.response_schemas %} |
|
31 |
</div> |
|
32 |
</li> |
|
33 |
{% endif %} |
|
27 | 34 |
</ul> |
28 | 35 |
{% if endpoint.long_description %} |
29 | 36 |
<div class="long-description"> |
passerelle/utils/api.py | ||
---|---|---|
46 | 46 |
show=True, |
47 | 47 |
show_undocumented_params=True, |
48 | 48 |
display_order=0, |
49 |
display_category=''): |
|
49 |
display_category='', |
|
50 |
json_schema_response=None): |
|
50 | 51 |
self.perm = perm |
51 | 52 |
self.methods = methods |
52 | 53 |
self.serializer_type = serializer_type |
... | ... | |
77 | 78 |
self.show_undocumented_params = show_undocumented_params |
78 | 79 |
self.display_order = display_order |
79 | 80 |
self.display_category = display_category |
81 |
self.response_schemas = {} |
|
82 |
if json_schema_response: |
|
83 |
self.response_schemas['application/json'] = json_schema_response |
|
80 | 84 | |
81 | 85 |
def __call__(self, func): |
82 | 86 |
func.endpoint_info = self |
tests/test_generic_endpoint.py | ||
---|---|---|
32 | 32 |
from django.core.urlresolvers import reverse |
33 | 33 | |
34 | 34 |
from passerelle.apps.arcgis.models import ArcGIS |
35 |
from passerelle.apps.api_particulier.models import APIParticulier |
|
35 | 36 |
from passerelle.base.models import ResourceLog, ProxyLogger, BaseResource, HTTPResource, LoggingParameters |
36 | 37 |
from passerelle.base.models import ResourceStatus |
37 | 38 |
from passerelle.apps.mdel.models import MDEL |
... | ... | |
786 | 787 |
connector.id = 42 |
787 | 788 | |
788 | 789 |
assert ['%s%s' % (ep.name, ep.pattern or '') for ep in connector.get_endpoints_infos()] == expected_ordering |
790 | ||
791 | ||
792 |
def test_response_schema(db, app): |
|
793 |
utils.make_resource(APIParticulier, slug='test', platform='test', api_key='xxx') |
|
794 |
response = app.get('/api-particulier/test/') |
|
795 |
assert 'nombrePersonnesCharge' in response |
|
789 |
- |