Projet

Général

Profil

0002-opendatasoft-use-APIError-into-endpoint-50212.patch

Nicolas Roche, 12 avril 2021 18:16

Télécharger (1,94 ko)

Voir les différences:

Subject: [PATCH 2/3] opendatasoft: use APIError into endpoint (#50212)

 passerelle/apps/opendatasoft/models.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
passerelle/apps/opendatasoft/models.py
15 15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
from django.db import models
18 18
from django.shortcuts import get_object_or_404
19 19
from django.urls import reverse
20 20
from django.utils.six.moves.urllib import parse as urlparse
21 21
from django.utils.translation import ugettext_lazy as _
22 22

  
23
from passerelle.utils.jsonresponse import APIError
23 24
from passerelle.utils.templates import render_to_string, validate_template
24 25
from passerelle.base.models import BaseResource, BaseQuery
25 26
from passerelle.utils.api import endpoint
26 27

  
27 28

  
28 29
class OpenDataSoft(BaseResource):
29 30
    service_url = models.CharField(
30 31
        _('Site URL'),
......
90 91
        if self.api_key:
91 92
            params.update({'apikey': self.api_key})
92 93
        if limit:
93 94
            params.update({'rows': limit})
94 95

  
95 96
        result_response = self.requests.get(url, params=params)
96 97
        err_desc = result_response.json().get('error')
97 98
        if err_desc:
98
            return {'err': 1, 'err_desc': err_desc}
99
            raise APIError(err_desc, http_status=200)
99 100

  
100 101
        result = []
101 102
        for record in result_response.json().get('records'):
102 103
            data = {}
103 104
            for key, value in record.get('fields').items():
104 105
                data[key] = value
105 106
            data['id'] = record.get('recordid')
106 107
            data['text'] = render_to_string(text_template, data).strip()
107
-