Projet

Général

Profil

Bug #32877

Ajouter les endpoints RSA au connecteur Solis

Ajouté par Thomas Noël il y a presque 5 ans. Mis à jour il y a presque 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
07 mai 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

.


Fichiers

Révisions associées

Révision ea7a20a3 (diff)
Ajouté par Thomas Noël il y a presque 5 ans

solis: re-order endpoints (#32877)

Révision 1b58e3dd (diff)
Ajouté par Thomas Noël il y a presque 5 ans

solis: add endpoint to get an item in some referentials (#32877)

Révision d810f679 (diff)
Ajouté par Thomas Noël il y a presque 5 ans

solis: add RSA endpoints (#32877)

Historique

#2

Mis à jour par Thomas Noël il y a presque 5 ans

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).

#3

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.

#4

Mis à jour par Emmanuel Cazenave il y a presque 5 ans

  • Statut changé de Solution proposée à Solution validée
#5

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()
#6

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)

#7

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

Formats disponibles : Atom PDF