Projet

Général

Profil

Development #30692

CD13: connecteur MDPH

Ajouté par Benjamin Dauvergne il y a environ 5 ans. Mis à jour il y a environ 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
15 février 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

À développer en mimant le connecteur ATOS-Genesys et sur la base de [[bouches-du-rhone-cd13:Web services MDPH du CD13]].


Fichiers

0001-add-MDPH13-connector-30692.patch (32,8 ko) 0001-add-MDPH13-connector-30692.patch Benjamin Dauvergne, 15 février 2019 13:16
0001-add-MDPH13-connector-30692.patch (32,8 ko) 0001-add-MDPH13-connector-30692.patch Benjamin Dauvergne, 26 février 2019 23:19
0002-rangement-des-demandes-en-deux-groupes-en-cours-et-h.patch (1,28 ko) 0002-rangement-des-demandes-en-deux-groupes-en-cours-et-h.patch Benjamin Dauvergne, 26 février 2019 23:19
0001-add-MDPH13-connector-30692.patch (32,8 ko) 0001-add-MDPH13-connector-30692.patch Benjamin Dauvergne, 26 février 2019 23:22
0002-rangement-des-demandes-en-deux-groupes-en-cours-et-h.patch (2,46 ko) 0002-rangement-des-demandes-en-deux-groupes-en-cours-et-h.patch Benjamin Dauvergne, 26 février 2019 23:22
0001-add-MDPH13-connector-30692.patch (34 ko) 0001-add-MDPH13-connector-30692.patch Benjamin Dauvergne, 01 mars 2019 11:18
0005-remove-obsolete-FIXME.patch (959 octets) 0005-remove-obsolete-FIXME.patch Benjamin Dauvergne, 01 mars 2019 15:39
0002-copyright-2019.patch (838 octets) 0002-copyright-2019.patch Benjamin Dauvergne, 01 mars 2019 15:39
0010-handle-partial-failure-when-getting-multiple-links.patch (3,26 ko) 0010-handle-partial-failure-when-getting-multiple-links.patch Benjamin Dauvergne, 01 mars 2019 15:39
0003-check_status-must-raise.patch (2,14 ko) 0003-check_status-must-raise.patch Benjamin Dauvergne, 01 mars 2019 15:39
0001-add-MDPH13-connector-30692.patch (34 ko) 0001-add-MDPH13-connector-30692.patch Benjamin Dauvergne, 01 mars 2019 15:39
0006-add-DELETE-verb-for-unlink.patch (908 octets) 0006-add-DELETE-verb-for-unlink.patch Benjamin Dauvergne, 01 mars 2019 15:39
0007-add-comment-on-audit-purpose-of-email-passed-to-WS-c.patch (1,38 ko) 0007-add-comment-on-audit-purpose-of-email-passed-to-WS-c.patch Benjamin Dauvergne, 01 mars 2019 15:39
0009-add-link_id-to-dossiers-parameters-modify-descriptio.patch (1,38 ko) 0009-add-link_id-to-dossiers-parameters-modify-descriptio.patch Benjamin Dauvergne, 01 mars 2019 15:39
0004-add-http_status-400-on-input-data-validation.patch (2,16 ko) 0004-add-http_status-400-on-input-data-validation.patch Benjamin Dauvergne, 01 mars 2019 15:39
0008-add-unlink-all-capacity.patch (2,24 ko) 0008-add-unlink-all-capacity.patch Benjamin Dauvergne, 01 mars 2019 15:39
0005-remove-obsolete-FIXME.patch (959 octets) 0005-remove-obsolete-FIXME.patch Benjamin Dauvergne, 05 mars 2019 14:43
0002-copyright-2019.patch (838 octets) 0002-copyright-2019.patch Benjamin Dauvergne, 05 mars 2019 14:43
0010-handle-partial-failure-when-getting-multiple-links.patch (3,26 ko) 0010-handle-partial-failure-when-getting-multiple-links.patch Benjamin Dauvergne, 05 mars 2019 14:43
0003-check_status-must-raise.patch (2,14 ko) 0003-check_status-must-raise.patch Benjamin Dauvergne, 05 mars 2019 14:43
0001-add-MDPH13-connector-30692.patch (33,9 ko) 0001-add-MDPH13-connector-30692.patch Benjamin Dauvergne, 05 mars 2019 14:43
0006-add-DELETE-verb-for-unlink.patch (908 octets) 0006-add-DELETE-verb-for-unlink.patch Benjamin Dauvergne, 05 mars 2019 14:43
0007-add-comment-on-audit-purpose-of-email-passed-to-WS-c.patch (1,38 ko) 0007-add-comment-on-audit-purpose-of-email-passed-to-WS-c.patch Benjamin Dauvergne, 05 mars 2019 14:43
0009-add-link_id-to-dossiers-parameters-modify-descriptio.patch (1,38 ko) 0009-add-link_id-to-dossiers-parameters-modify-descriptio.patch Benjamin Dauvergne, 05 mars 2019 14:43
0004-add-http_status-400-on-input-data-validation.patch (2,16 ko) 0004-add-http_status-400-on-input-data-validation.patch Benjamin Dauvergne, 05 mars 2019 14:43
0008-add-unlink-all-capacity.patch (2,24 ko) 0008-add-unlink-all-capacity.patch Benjamin Dauvergne, 05 mars 2019 14:43
0011-mdph13-use-latest-link-instead-of-first-for-check_st.patch (1,34 ko) 0011-mdph13-use-latest-link-instead-of-first-for-check_st.patch Benjamin Dauvergne, 05 mars 2019 14:43

Révisions associées

Révision ad953198 (diff)
Ajouté par Benjamin Dauvergne il y a environ 5 ans

add MDPH13 connector (#30692)

Historique

#2

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • Assigné à mis à Benjamin Dauvergne
#3

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Avec que des tests en mock directement sur les endpoint, pour ce genre de connecteurs je pense que c'est suffisant.

#4

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

D'abord faire des tests en vrai avant de pousser, pour l'instant on a qu'un web-service bouchon qui renvoie un fichier statique coté CD13.

#8

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • Tracker changé de Support à Development
#9

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Code testé avec données de test sur #30062, à relire.

#10

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

Allez, « (C) 2019 »

Le check_status(self) il faut qu'il raise en cas de pépin ; ie tu peux remplacer tout le try/except par un simple link.get_file().

Sur les APIError qui sont liées à la validation des données en entrée, tu peux faire des « raise APIError(..., http_status=400) »

Sur :

        # Reorganize demandes

        # FIXME add more schema controls

c'est un vieux FIXME ou bien il faudra ajouter d'autres contrôles ? Je serais d'avis de le retirer de toute façon, on ajoutera les contrôles si on voit que leur appli commence à envoyer du n'imp.

Pourquoi «methods=['post'],» sur link/unlink ? Je serais pour laisser tout passer, y compris le get qui permet de faciliter les tests rapides (hop un clic sur l'url...). Mais sinon, tu peux au moins ouvrir à 'delete' pour unlink, maintenant que w.c.s. sait le faire.

Au niveau du link, la ligne « link.get_file(email=email) » elle est là pour valider que l'appairage a été fait avec un dossier existant et correct ? Si oui, je serais pour le dire en commentaire.

self.EMAIL_RE.match(email) j'ai jamais aimé les validations de mail à base de regexp, mais bon, elle est large ici, ça passe :)

Pour le unlink, je ne sais pas si c'est utile fonctionnellement, mais peut-être ajouter la possibilité de "se délinker de tout" si aucun link_id n'est envoyer. Disons que ça coûte pas cher de l'avoir maintenant.

Sur le endpoint dossiers :
  • ajouter link_id dans les parameters, pour montrer qu'il est possible. Et peut-être renommer "Get datas for all links" en "Get datas for all links, or for a specified one"
  • au niveau de "for link in qs:" j'ai l'impression que l'API va crasher si un des dossiers lève une exception. Peut-être faudrait-il être plus laxiste ? Genre, ne planter que si tous les get_file ont raté, et si seulement certains ont levé une exception le dire dans un "error_on_links_id: [...]" ajouté à coté de data.
#11

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Thomas Noël a écrit :

Pourquoi «methods=['post'],» sur link/unlink ? Je serais pour laisser tout passer, y compris le get qui permet de faciliter les tests rapides (hop un clic sur l'url...). Mais sinon, tu peux au moins ouvrir à 'delete' pour unlink, maintenant que w.c.s. sait le faire.

Pas fan des GETs qui font des trucs, et je ne sais pas sur quelle URL on irait cliquer, je fais mes tests avec http j'ai juste à ajouter POST.

Au niveau du link, la ligne « link.get_file(email=email) » elle est là pour valider que l'appairage a été fait avec un dossier existant et correct ? Si oui, je serais pour le dire en commentaire.

Pas du tout, c'est pour audit, ils veulent voir pour chaque appel fait à l'API l'email de l'utilisateur concerné de notre coté, j'ai ajouté des commentaires pour expliquer.

Pour le unlink, je ne sais pas si c'est utile fonctionnellement, mais peut-être ajouter la possibilité de "se délinker de tout" si aucun link_id n'est envoyer. Disons que ça coûte pas cher de l'avoir maintenant.

Ok, unlink(link_id='all') ajouté, je n'aime pas faire une action aussi violente sur l'absence d'une valeur.

Sur le endpoint dossiers :
  • ajouter link_id dans les parameters, pour montrer qu'il est possible. Et peut-être renommer "Get datas for all links" en "Get datas for all links, or for a specified one"

Ok.

  • au niveau de "for link in qs:" j'ai l'impression que l'API va crasher si un des dossiers lève une exception. Peut-être faudrait-il être plus laxiste ? Genre, ne planter que si tous les get_file ont raté, et si seulement certains ont levé une exception le dire dans un "error_on_links_id: [...]" ajouté à coté de data.

Yep pris en compte ta remarque en plus, avec un nouveau test "_partial_failure", je note au passage qu'il serait pratique d'extraire to_json().err_to_response() que je suis obligé d'instancier juste pour cela.

#13

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

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

Je me dis qu'à l'usage, un check_status qui fait un link.get_file() sur le premier link, ça pourrait finir par planter si le premier link est en fait périmé (pointe vers un vieux dossier supprimé). Je me dis qu'on pourrait plutôt taper sur le dernier lien créé... Genre « link = Link.objects.order_by('created').last() »

Pousse avec ou sans ce mini détail.

#14

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Thomas Noël a écrit :

Je me dis qu'à l'usage, un check_status qui fait un link.get_file() sur le premier link, ça pourrait finir par planter si le premier link est en fait périmé (pointe vers un vieux dossier supprimé). Je me dis qu'on pourrait plutôt taper sur le dernier lien créé... Genre « link = Link.objects.order_by('created').last() »

Ça c'est une bonne idée, je prends.

Pousse avec ou sans ce mini détail.

Avec.

#16

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • Statut changé de Solution proposée à Solution déployée
#17

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • Statut changé de Solution déployée à Fermé

Formats disponibles : Atom PDF