Projet

Général

Profil

Bug #86146

toulouse-maelis: panier validé sans identifiant

Ajouté par Sentry Io il y a 3 mois. Mis à jour il y a 3 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
26 janvier 2024
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/120215/

failed to POST https://passerelle-famille-loisirs.eservices.toulouse-metropole.fr/toulouse-maelis/maelis/validate-basket?orig=famille-loisirs.eservices.toulouse-metropole.fr&NameID=c7e4159fce3045268322698f61a356b0&algo=sha256&timestamp=2024-01-25T18%3A00%3A25Z&nonce=ec13cf1a611db6fe7b2998981685c409&signature=XSPH6btdofw%2BhnXsLuidKjA7MvvlHRDcugtjyL7%2BURg%3D (400)
Body :
  • action: validate
  • basket_id:

Fichiers

Historique

#1

Mis à jour par Nicolas Roche il y a 3 mois

  • Projet changé de Suivi des traces à Passerelle
  • Sujet changé de parsifal, panier validé sans identifiant à toulouse-maelis: panier validé sans identifiant
  • Description mis à jour (diff)
  • Assigné à mis à Nicolas Roche

Je comprend pas comment combo peut faire cette requête (de validation du panier) au connecteur sans passer d'identifiants,
pour moi le template ne le permet pas :
https://git.entrouvert.org/entrouvert/publik-base-theme/src/branch/main/templates/variants/toulouse-2022/combo/json/toulouse-maelis-basket.html

  {% for basket in json.data %}
      <form method="POST" action="{{ site_base }}{% url 'combo-public-ajax-page-cell' page_pk=cell.page.id cell_reference=cell.get_reference %}">
        <input type="hidden" name="action" value="validate">
        <input type="hidden" name="basket_id" value="{{ basket.id }}">
        <button class="theme-basket--validate-button">Valider</button>
      </form>
  {% endfor %}

Ça voudrais dire que des paniers retournés par Maélis n'auraient pas d'identifiants.

#2

Mis à jour par Nicolas Roche il y a 3 mois

Ça voudrais dire que des paniers retournés par Maélis n'auraient pas d'identifiants.

Non. Pour ce NameID aucun panier n'a jamais été renvoyé :

   con = ToulouseMaelis.objects.get(slug='maelis')
   con.link_set.get(name_id='7d9a2fce74d9440bad42a2adac3c6b1c').family_id
   -> '190631'
   logs1 = ResourceLog.objects.filter(appname='toulouse-maelis', slug='maelis', message__contains='ActivityService (=> 200)')
   logs2 = [x for x in logs1 if 'getFamilyBasket' in x.extra.get('request_payload', '')]
   logs3 = [x for x in logs2 if '<numFamily>190631' in x.extra.get('request_payload', '')]
   [x.extra['response_content'] for x in logs3]

edit: j'ai pris le NameID trouvé dans les traces ce matin, mais j'ai le même résultat avec le NameID du ticket,
et je ne trouve aucun panier renvoyé sans identifiant.

[x.extra['response_content'] for x in logs2 if '<id></id>' in x.extra['response_content']]

#3

Mis à jour par Nicolas Roche il y a 3 mois

  • Statut changé de Nouveau à Information nécessaire
  • Assigné à changé de Nicolas Roche à Benjamin Dauvergne

Benjamin, tu saurais m'orienter vers une piste à creuser ?
Et sinon, je remplace l'APIError (sur get_basket_raw) par un warning ?

#4

Mis à jour par Benjamin Dauvergne il y a 3 mois

De mon coté j'ai regardé le connector_result de tous les appels get-baskets non vide, sur aucun l'attribut "id" ne manque sur les paniers.

Je pencherai plutôt pour un manque de contrôle de json.err dans le template et la présence de données autres dans json.data car les SOAPError produisent un champ data (une mauvaise idée finalement) :

class SOAPFault(SOAPError):
    log_error = False                                                                                    

    def __init__(self, client, fault):                                                                   
        detail = fault.detail                                                                            
        if isinstance(detail, etree._Element):                                                           
            fault.detail = etree.tostring(detail).decode()                                               
        elif isinstance(detail, bytes):                                                                  
            fault.detail = detail.decode()                                                               
        super().__init__(                                                                                
            f'SOAP service at {client.wsdl.location} returned an error "{fault.message or fault.code}"', 
            data={                                                                                       
                'soap_fault': fault.__dict__,                                                            
            },                                                                                           
        )

#5

Mis à jour par Benjamin Dauvergne il y a 3 mois

  • Assigné à changé de Benjamin Dauvergne à Nicolas Roche
#6

Mis à jour par Benjamin Dauvergne il y a 3 mois

Il faut faire le tour de tous les templates Maelis du thème et bien vérifier qu'on teste json.err et qu'on affiche un message d'erreur temporaire.

#7

Mis à jour par Nicolas Roche il y a 3 mois

Merci (je reproduis) !

#8

Mis à jour par Nicolas Roche il y a 3 mois

  • Projet changé de Passerelle à Intégrations graphiques Publik
#9

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de En cours à Solution proposée

Nicolas Roche (nroche) a ouvert une pull request sur Gitea concernant cette demande :

#10

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de Solution proposée à En cours

Benjamin Dauvergne (bdauvergne) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :

#11

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de En cours à Solution proposée

Nicolas Roche (nroche) a demandé une relecture de Benjamin Dauvergne (bdauvergne) sur une pull request sur Gitea concernant cette demande :

#12

Mis à jour par Robot Gitea il y a 3 mois

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

Benjamin Dauvergne (bdauvergne) a approuvé une pull request sur Gitea concernant cette demande :

#13

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de Solution validée à Résolu (à déployer)

Nicolas Roche (nroche) a mergé une pull request sur Gitea concernant cette demande :

#14

Mis à jour par Transition automatique il y a 3 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#15

Mis à jour par Transition automatique il y a 26 jours

Automatic expiration

Formats disponibles : Atom PDF