diff --git a/passerelle/apps/api_entreprise/models.py b/passerelle/apps/api_entreprise/models.py index 020c0fdc..be79666c 100644 --- a/passerelle/apps/api_entreprise/models.py +++ b/passerelle/apps/api_entreprise/models.py @@ -288,8 +288,14 @@ class APIEntreprise(BaseResource): 'object': OBJECT_PARAM, 'context': CONTEXT_PARAM, 'recipient': RECIPIENT_PARAM, + 'include_private': { + 'description': _('Include private informations'), + 'example_value': 'true' + } }) - def entreprises(self, request, siren, **kwargs): + def entreprises(self, request, siren, include_private=False, **kwargs): + if include_private: + kwargs['non_diffusables'] = True return self.get('entreprises/%s/' % siren, **kwargs) @endpoint(perm='can_access', diff --git a/tests/test_api_entreprise.py b/tests/test_api_entreprise.py index ecd49c19..5dd43a7c 100644 --- a/tests/test_api_entreprise.py +++ b/tests/test_api_entreprise.py @@ -382,6 +382,19 @@ def test_entreprises_endpoint(app, resource, mock_api_entreprise): assert data['etablissement_siege']['date_mise_a_jour'] == '2015-12-03' +def test_entreprises_endpoint_include_private(app, resource, mock_api_entreprise, monkeypatch): + get = mock.Mock(return_value={}) + monkeypatch.setattr(resource.__class__, 'get', get) + request_params = REQUEST_PARAMS.copy() + + app.get('/api-entreprise/test/entreprises/443170139/', params=request_params) + assert 'non_diffusables' not in get.mock_calls[0].kwargs + + request_params['include_private'] = True + app.get('/api-entreprise/test/entreprises/443170139/', params=request_params) + assert get.mock_calls[1].kwargs['non_diffusables'] is True + + def test_etablissements_endpoint(app, resource, mock_api_entreprise): response = app.get('/api-entreprise/test/etablissements/44317013900036/', params=REQUEST_PARAMS)