From 11a21a049510be7ae927b9b95eeeeb3f94c6e710 Mon Sep 17 00:00:00 2001 From: Guillaume Risbourg Date: Wed, 18 Sep 2019 10:42:05 +0200 Subject: [PATCH] [banquepopulaire] Handle dematerialization status for subscriptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the status (available in the SubscriberPage with the key `roleUtilisateurCoffreNumerique/code`) of dematerialization is CGDN (Coffre Gratuit sans contrat de dématérialisation des documents) that means we cannot gather subscriptions/documents online. Closes: 46839@sibi --- modules/banquepopulaire/browser.py | 7 ++++++- modules/banquepopulaire/document_pages.py | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/banquepopulaire/browser.py b/modules/banquepopulaire/browser.py index 0677cdf7ff..27640008f0 100644 --- a/modules/banquepopulaire/browser.py +++ b/modules/banquepopulaire/browser.py @@ -581,8 +581,13 @@ def iter_subscriptions(self): self.documents_headers = {'Authorization': 'Bearer %s' % response.json()['access_token']} self.location('/api-bp/wapi/2.0/abonnes/current/mes-documents-electroniques', headers=self.documents_headers) - subscriber = self.page.get_subscriber() + if self.page.get_status_dematerialized() == 'CGDN': + # A status different than 1 means either the demateralization isn't enabled + # or not available for this connection + return [] + + subscriber = self.page.get_subscriber() params = {'type': 'dematerialisationEffective'} self.location('/api-bp/wapi/2.0/abonnes/current/contrats', params=params, headers=self.documents_headers) return self.page.get_subscriptions(subscriber=subscriber) diff --git a/modules/banquepopulaire/document_pages.py b/modules/banquepopulaire/document_pages.py index 52d0e29ddc..3d9e21c2b8 100644 --- a/modules/banquepopulaire/document_pages.py +++ b/modules/banquepopulaire/document_pages.py @@ -39,6 +39,8 @@ class SubscriberPage(LoggedPage, JsonPage): def get_subscriber(self): return self.doc['nomRaisonSociale'] + def get_status_dematerialized(self): + return self.doc['roleUtilisateurCoffreNumerique']['code'] class SubscriptionsPage(LoggedPage, JsonPage): @method -- GitLab