Development #33492
atos_genesys: ignorer les dossiers vides, filtrer sur la date de naissance
0%
Description
Le web-service ignore en fait la date de naissance, et nous renvoie parfois des dossiers vides.
Pour le premier souci on va filtrer de notre coté.
Pour le deuxième on va simplement ignorer ces réponses, mais les logger au cas où.
À faire au dessus de #33491.
Fichiers
Révisions associées
atos_genesys: make search endpoint a datasource of contact informations (#33492)
The datasource is only provisionned if the search find one and only one
dossier, otherwise it's empty. We also return if for the given NameID
the person is already paired.
Historique
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Statut changé de Nouveau à Solution proposée
Mis à jour par Emmanuel Cazenave il y a presque 5 ans
du coup quelques compléments de test dans test_ws_search
ou dans un nouveau test ?
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch ajouté
Tests corrigés.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch ajouté
Encore un ajustement pour supprimer l'utilisation du téléphone fixe.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch ajouté
Encore un coup pour Mike, je filtre le numéro de téléphone.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch ajouté
Et correction du test.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch 0001-atos_genesys-filter-call_cherche_beneficiaire-result.patch ajouté
Changement de fusil d'épaule, je construis une datasource à partir des informations de contact.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Au lieu de logguer, pourquoi ne pas renvoyer les bénéficiaires foireux, quand il y en a, la réponse, à côté de data, genre {'data': beneficiaires, 'bad_data': bad_beneficiaires}. Ca permettrait à l'utilisateur des webservices, qui n'aura pas forcément accès aux logs, de comprendre ce qui se passe.
J'aurais aussi eu tendance à ne pas faire de warning si ce sont des erreurs "habituelles" (genre déjà vues rien que dans les tests des premiers jours...) ; juste des info voire du debug si vraiment c'est tout-le-temps-bogué.
Bon après je sais pas quand tout ça est utilisé, donc, plouf, si ça ne nous lance pas des alertes sans arrêt, go.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-make-search-endpoint-a-datasource-of-co.patch 0001-atos_genesys-make-search-endpoint-a-datasource-of-co.patch ajouté
- Statut changé de Solution validée à Solution proposée
Dernière itération, j'espère.
Le endpoint search est maintenant une datasource tout ce qu'il y a de plus propre.
- Si la recherche trouve un dossier contenant des informations de contact, il les retourne sous la forme classique
{ 'err':0, 'data': [ { 'id':.., 'text': ..., 'phone': ..., 'email': ..., 'id_per': ..., 'nom': ..., 'prenom': ..., 'nom_naissance': ..., } ] }
- Si la recherche ne trouve aucun dossier :
{'err': 1, 'err_desc': 'not-found'}
- Si la recherche trouve plus d'un dossier:
{'err': 1, 'err_desc': 'too-many'}
- Si le dossier ne contient aucune information de contact:
{'err': 1, 'err_desc': 'no-contacts'}
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-make-search-endpoint-a-datasource-of-co.patch 0001-atos_genesys-make-search-endpoint-a-datasource-of-co.patch ajouté
Ne jamais dire jamais, dernier coup pour ne garder que les numéros de mobiles.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Si la recherche ne trouve aucun dossier, err:1
Pour moi ça devrait pas être source d'erreur, juste data:[] ... non ? De même pour pour "too-many". En fait le nom du endpoint est trompeur, c'est pas un "search" mais un "get" ?
Je suis toujours pas fan des self.logger.warning('no ID_PER'), c'est pas la faute de passerelle si genesys a des info corrompues, le niveau "warning" me semble trop élevé, logger.info devrait être ok.
Le assert identification['ID_PER'] == id_per
pourrait être remplacé par la même logique que la vérification de la date de naissance, histoire qu'on n'ait jamais de traces.
Bon bref je ne sais pas à quoi ce endpoint sert, donc je acke car le code est ok et certainement basé sur l'expérience de l'application en face, hop.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Thomas Noël a écrit :
Si la recherche ne trouve aucun dossier, err:1
Pour moi ça devrait pas être source d'erreur, juste data:[] ... non ? De même pour pour "too-many". En fait le nom du endpoint est trompeur, c'est pas un "search" mais un "get" ?
Je veux bien mais ça m'obligera juste à mettre l'information du err_desc ailleurs, car on veut pouvoir dire "pas trouver/trouvé mais plusieurs réponses/trouvé mais vous n'avez aucun mobile ou email renseigné".
Et c'est moins propre à coder que raise APIError() et pour moi c'est une erreur (erreur ne voulant pas dire rien marche, mais "ce n'est pas le cas nominal/passant qui nous intéresse").
Je suis toujours pas fan des self.logger.warning('no ID_PER'), c'est pas la faute de passerelle si genesys a des info corrompues, le niveau "warning" me semble trop élevé, logger.info devrait être ok.
Les warnings ça ne trace pas et on a rien pour logger ça coté w.c.s. mais faut bien le noter quelque part; le mélanger avec info ça ne permet pas de suivre facilement les erreurs je trouve, pour pointer sa merde à la ville "là vous voyez, y a des warnings".
Le
assert identification['ID_PER'] == id_per
pourrait être remplacé par la même logique que la vérification de la date de naissance, histoire qu'on n'ait jamais de traces.
Ok warning.
Bon bref je ne sais pas à quoi ce endpoint sert, donc je acke car le code est ok et certainement basé sur l'expérience de l'application en face, hop.
Ça sert à appairer des gens en se basant sur un code envoyé par SMS ou mail, on ne veut pas que les gens choisissent parmi les résultats on veut qu'ils nous donne assez d'informations pour n'en trouver qu'un.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-atos_genesys-make-search-endpoint-a-datasource-of-co.patch 0001-atos_genesys-make-search-endpoint-a-datasource-of-co.patch ajouté
- Statut changé de Solution validée à Solution proposée
Dernier coup, à la demande de Mike je vérifie si un appairage existe déjà pour un NameID qui m'est transmis, et j'ai transformé le assert en warning.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Ack, mais peut-être, ajouter la description de NameID dans le endpoint ? (pour le coup j'en comprends pas trop l'utilité, mais hop, go)
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Thomas Noël a écrit :
Ack, mais peut-être, ajouter la description de NameID dans le endpoint ? (pour le coup j'en comprends pas trop l'utilité, mais hop, go)
Un dossier genesys peut être appairé avec plusieurs comptes publik, pour répondre à la question est-ce que ce compte que je viens de trouver est appairé avec le compte de la personne qui est en train de tenter un appairage, j'ai besoin du NameID, d'une simple recherche on est passé à un WS qui gère un peu tout le processus d'appairage sans code.
Mis à jour par Thomas Noël il y a presque 5 ans
Benjamin Dauvergne a écrit :
Thomas Noël a écrit :
Ack, mais peut-être, ajouter la description de NameID dans le endpoint ? (pour le coup j'en comprends pas trop l'utilité, mais hop, go)
Un dossier genesys peut être appairé avec plusieurs comptes publik, pour répondre à la question est-ce que ce compte que je viens de trouver est appairé avec le compte de la personne qui est en train de tenter un appairage, j'ai besoin du NameID, d'une simple recherche on est passé à un WS qui gère un peu tout le processus d'appairage sans code.
Y'a des gens c'est des fous :) Juste pour être sûr que tu as vu : j'ai bien validé ton patch.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Thomas Noël a écrit :
Benjamin Dauvergne a écrit :
Thomas Noël a écrit :
Ack, mais peut-être, ajouter la description de NameID dans le endpoint ? (pour le coup j'en comprends pas trop l'utilité, mais hop, go)
Un dossier genesys peut être appairé avec plusieurs comptes publik, pour répondre à la question est-ce que ce compte que je viens de trouver est appairé avec le compte de la personne qui est en train de tenter un appairage, j'ai besoin du NameID, d'une simple recherche on est passé à un WS qui gère un peu tout le processus d'appairage sans code.
Y'a des gens c'est des fous :) Juste pour être sûr que tu as vu : j'ai bien validé ton patch.
Ouais mais ça évolue encore, faut que je valide la commune et le pays de naissance maintenant...
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit b4aad9cd5f2e3d1a40d3c6bb1b6bad2a3eb39014 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Tue May 28 14:38:54 2019 +0200 atos_genesys: make search endpoint a datasource of contact informations (#33492) The datasource is only provisionned if the search find one and only one dossier, otherwise it's empty. We also return if for the given NameID the person is already paired. commit 46235973f07c08b1b84526eed3104d6084de34b5 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Wed May 29 17:19:03 2019 +0200 utils: add to_ascii helper (#33492)
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
utils: add to_ascii helper (#33492)