Bug #32877
Ajouter les endpoints RSA au connecteur Solis
0%
Description
.
Fichiers
Révisions associées
solis: add endpoint to get an item in some referentials (#32877)
solis: add RSA endpoints (#32877)
Historique
Mis à jour par Thomas Noël il y a presque 5 ans
- Fichier 0003-solis-add-RSA-endpoints-32877.patch 0003-solis-add-RSA-endpoints-32877.patch ajouté
- Fichier 0002-solis-add-endpoint-to-get-an-item-in-some-referentia.patch 0002-solis-add-endpoint-to-get-an-item-in-some-referentia.patch ajouté
- Fichier 0001-solis-re-order-endpoints-32877.patch 0001-solis-re-order-endpoints-32877.patch ajouté
- Tracker changé de Support à Bug
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
C'est assez "facile", il s'agit de proposer l'appairage d'un compte Publik avec un ou plusieurs comptes Solis/RSA, de lister les appairages, et de remonter tel type d'info sur tel compte appairé.
Le code n'est pas factorisé avec l'APA, parce que ça n'est pas factorisable (la gestion du token n'a rien à voir, etc, etc).
Mis à jour par Emmanuel Cazenave il y a presque 5 ans
0003 je vois pas mals de cas d'erreurs potentiels pour cause de donnés reçųes inexploitables, mais on va attendre d'avoir des problèmes avant de tout régler.
Quand même sur le pattern récurrent :
if xxx not in data: raise APIError(xxxx)
au moins ajouter un and data[xxx]
pour parer au coup classique de l'appel depuis un workflow avec un mauvais nom de variable, ack avec ça.
Mis à jour par Emmanuel Cazenave il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Thomas Noël il y a presque 5 ans
Effectivement c'est plus joli comme ça, j'ai poussé une nouvelle version dans la branche, voici l'interdiff :
diff --git a/passerelle/apps/solis/models.py b/passerelle/apps/solis/models.py index d050933c..52845762 100644 --- a/passerelle/apps/solis/models.py +++ b/passerelle/apps/solis/models.py @@ -483,9 +483,9 @@ class Solis(BaseResource): raise APIError('payload is not a JSON dict') if not isinstance(data, dict): raise APIError('payload is not a JSON dict') - if 'name_id' not in data: + if not data.get('name_id'): raise APIError('missing name_id') - if 'user_id' not in data or 'code' not in data: + if not data.get('user_id') or not data.get('code'): raise APIError('missing user_id/code credentials') name_id, user_id, code = data['name_id'], data['user_id'], data['code'] self.rsa_token(user_id, code) # invalid credentials raise APIError here @@ -509,9 +509,9 @@ class Solis(BaseResource): raise APIError('payload is not a JSON dict') if not isinstance(data, dict): raise APIError('payload is not a JSON dict') - if 'name_id' not in data: + if not data.get('name_id'): raise APIError('missing name_id') - if 'user_id' not in data: + if not data.get('user_id'): raise APIError('missing user_id') name_id, user_id = data['name_id'], data['user_id'] SolisRSALink.objects.filter(resource=self, name_id=name_id, user_id=user_id).delete()
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit d810f6799a7caafb614fc259dc52af038a633153 (HEAD -> master, origin/master, origin/HEAD) Author: Thomas NOEL <tnoel@entrouvert.com> Date: Thu May 9 00:13:09 2019 +0200 solis: add RSA endpoints (#32877) commit 1b58e3ddcde43db4b6406b6b36e07c55a0c9c349 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Wed May 8 23:52:46 2019 +0200 solis: add endpoint to get an item in some referentials (#32877) commit ea7a20a3f293a4eded47cc0962210807f57fee4d Author: Thomas NOEL <tnoel@entrouvert.com> Date: Tue May 7 16:43:13 2019 +0200 solis: re-order endpoints (#32877)
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
solis: re-order endpoints (#32877)