Projet

Général

Profil

0006-wcs-allow-post_json-to-ask-for-json-content-55230.patch

Nicolas Roche, 19 juillet 2021 10:22

Télécharger (2,08 ko)

Voir les différences:

Subject: [PATCH 6/7] wcs: allow post_json to ask for json content (#55230)

 passerelle/utils/wcs.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
passerelle/utils/wcs.py
577 577
            content = getattr(getattr(e, 'response', None), 'content', None)
578 578
            raise WcsApiError('GET request failed', final_url, e, content)
579 579
        else:
580 580
            try:
581 581
                return response.json()
582 582
            except ValueError as e:
583 583
                raise WcsApiError('Invalid JSON content', final_url, e)
584 584

  
585
    def post_json(self, data, *url_parts):
585
    def post_json(self, data, *url_parts, headers={'content-type': 'application/json'}):
586 586
        url = self._build_url(url_parts)
587 587
        params = {}
588 588
        if self.email:
589 589
            params['email'] = self.email
590 590
        if self.name_id:
591 591
            params['NameID'] = self.name_id
592 592
        if self.orig:
593 593
            params['orig'] = self.orig
594 594
        query_string = urlparse.urlencode(params)
595 595
        complete_url = url + ('&' if '?' in url else '?') + query_string
596 596
        final_url = complete_url
597 597
        if self.key:
598 598
            final_url = signature.sign_url(final_url, self.key)
599 599
        try:
600
            response = self.requests.post(
601
                final_url, data=json.dumps(data), headers={'content-type': 'application/json'}
602
            )
600
            response = self.requests.post(final_url, data=json.dumps(data), headers=headers)
603 601
            response.raise_for_status()
604 602
        except requests.RequestException as e:
605 603
            content = getattr(getattr(e, 'response', None), 'content', None)
606 604
            raise WcsApiError('POST request failed', final_url, e, content)
607 605
        else:
608 606
            try:
609 607
                return response.json()
610 608
            except ValueError as e:
611
-