Projet

Général

Profil

0001-api_entreprise-add-include_private-parameter-41417.patch

Emmanuel Cazenave, 07 avril 2020 14:25

Télécharger (3,42 ko)

Voir les différences:

Subject: [PATCH] api_entreprise: add 'include_private' parameter (#41417)

 passerelle/apps/api_entreprise/models.py | 16 +++++++++++++---
 tests/test_api_entreprise.py             | 15 ++++++++++++++-
 2 files changed, 27 insertions(+), 4 deletions(-)
passerelle/apps/api_entreprise/models.py
288 288
                  'object': OBJECT_PARAM,
289 289
                  'context': CONTEXT_PARAM,
290 290
                  'recipient': RECIPIENT_PARAM,
291
                  'include_private':  {
292
                      'description': _('Include private informations'),
293
                      'example_value': 'true'
294
                  }
291 295
              })
292
    def entreprises(self, request, siren, **kwargs):
293
        return self.get('entreprises/%s/' % siren, **kwargs)
296
    def entreprises(self, request, siren, include_private=False, **kwargs):
297
        kwargs['non_diffusables'] = True
298
        res = self.get('entreprises/%s/' % siren, **kwargs)
299
        if include_private:
300
            return res
301
        if not res.get('data', {}).get('entreprise', {}).get('diffusable_commercialement', True):
302
            res['data'] = {}
303
        return res
294 304

  
295 305
    @endpoint(perm='can_access',
296 306
              methods=['get'],
......
303 313
                  'context': CONTEXT_PARAM,
304 314
                  'recipient': RECIPIENT_PARAM,
305 315
              })
306
    def etablissements(self, request, siret, **kwargs):
316
    def etablissements(self, request, siret, non_diffusable=False, **kwargs):
307 317
        return self.get('etablissements/%s/' % siret, **kwargs)
308 318

  
309 319
    @endpoint(perm='can_access',
tests/test_api_entreprise.py
118 118
    "etat_administratif": {
119 119
      "value": "C", # A (actif) ou C (cessé)
120 120
      "date_cessation": 1315173600 # null quand actif (A), un timestamp (un entier) quand cessé (C )
121
    }
121
    },
122
    "diffusable_commercialement": True,
122 123
  },
123 124
  "etablissement_siege": {
124 125
    "siege_social": True,
......
410 411
    assert data['etablissement_siege']['date_mise_a_jour'] == '2015-12-03'
411 412

  
412 413

  
414
def test_entreprises_endpoint_include_private(app, resource, mock_api_entreprise, monkeypatch):
415
    monkeypatch.setitem(ENTREPRISES_RESPONSE['entreprise'], 'diffusable_commercialement', False)
416
    request_params = REQUEST_PARAMS.copy()
417

  
418
    response = app.get('/api-entreprise/test/entreprises/443170139/', params=request_params)
419
    assert response.json['data'] == {}
420

  
421
    request_params['include_private'] = True
422
    response = app.get('/api-entreprise/test/entreprises/443170139/', params=request_params)
423
    assert response.json['data']['entreprise']['categorie_entreprise'] == 'PME'
424

  
425

  
413 426
def test_etablissements_endpoint(app, resource, mock_api_entreprise):
414 427
    response = app.get('/api-entreprise/test/etablissements/44317013900036/',
415 428
                       params=REQUEST_PARAMS)
416
-