From ac9ca6d7dada88a2e981b5b9ad326889c02f3913 Mon Sep 17 00:00:00 2001 From: Emmanuel Cazenave Date: Thu, 16 Apr 2020 16:05:24 +0200 Subject: [PATCH] add get-data endpoint --- passerelle_reunion_fsn/models.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/passerelle_reunion_fsn/models.py b/passerelle_reunion_fsn/models.py index 1f3db0d..151fd8f 100644 --- a/passerelle_reunion_fsn/models.py +++ b/passerelle_reunion_fsn/models.py @@ -367,6 +367,38 @@ query getDossiers($demarcheNumber: Int!, $createdSince: ISO8601DateTime, $first: response['Content-Disposition'] = 'attachment; filename="somefilename.csv"' return response + @endpoint( + methods=['get'], perm='can_access', name='get-data', + description=_('Get data by sequence or siren') + ) + def get_data(self, request, sequence=None, siren=None): + + def build_result(entreprise): + return { + 'data': {attr: getattr(entreprise, attr) for attr in COLUMNS_KEYNAMES} + } + + if sequence is None and siren is None: + raise APIError('Need sequence or siren') + + if sequence: + try: + entreprise = Entreprise.objects.get(resource=self, sequence=sequence) + return build_result(entreprise) + except Entreprise.DoesNotExist: + pass + + if siren: + try: + entreprise = Entreprise.objects.get(resource=self, siren=siren) + return build_result(entreprise) + except Entreprise.DoesNotExist: + pass + + return { + 'data': {} + } + class Entreprise(models.Model):