Projet

Général

Profil

Development #6622

Étendre les données du POST de l'appel à un webservice

Ajouté par Frédéric Péters il y a environ 9 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Version cible:
Début:
05 mars 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Dans la configuration, avoir un widget permettant d'entrer des clés / valeurs (WidgetDict, comme dans "Règle de correspondance des attributs pour le statut administrateur"), pour pouvoir ajouter des données qui ne sont pas dans l'export JSON, ce qui donnerait par exemple :

  Paramètres supplémentaires
   | source_url  |   :  | [form_url]        |
   | amount      |   :  | [form_var_amount] |
   <add new line>

(une autre possibilité c'est de tout caser dans l'url même)

(J'ai fait l'erreur de mentionner deux choses dans #6446.)


Fichiers

Révisions associées

Révision fd9526cd (diff)
Ajouté par Thomas Noël il y a plus de 8 ans

wscall: allow extra data on POST (#6622)

Révision ff5a448e (diff)
Ajouté par Frédéric Péters il y a plus de 8 ans

wscall: improve post data presentation (#6622)

Historique

#1

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

Yes yes yes (avec si tu as le temps l'ajout d'une case à cocher "Envoyer en plus des données du formulaire", cochée par défaut, qui, décochée, permettrait de construire des POST de toute pièce sans envoyer "toute la scrap")

#2

Mis à jour par Frédéric Péters il y a plus de 8 ans

  • Priorité changé de Normal à Haut

Plutôt une formule Python qu'une expression EZT.

(Important pour l'envoi de données supplémentaires à Maarch.)

#3

Mis à jour par Thomas Noël il y a plus de 8 ans

Voilà une version 0 (sans tests) pour valider l'idée.

Pour « construire des POST de toute pièce » : si la case "envoyer le formdata en POST" est décochée mais que des données sont indiquées dans la conf de l'action, c'est elles seules sont envoyées par POST.

#4

Mis à jour par Thomas Noël il y a plus de 8 ans

#5

Mis à jour par Frédéric Péters il y a plus de 8 ans

Je préférerais qu'on décompose le export_to_json (création dict puis json.dumps), pour ne pas avoir à toucher à formdata.py pour l'ajout de données supplémentaires. En cas d'exception, faire un get_publisher().notify_of_exception()) (à terme ils devraient être dirigés vers la personne en charge.

Le code du "if self.post or self.post_data" est quand même un peu acrobatique; il devrait y avoir moyen de le structurer différemment (1/ if self.post_data, 2/ if self.post, avec dans les deux cas la création d'un dictionnaire, 3/ les mélanger de la manière appropriée, le tout avec quelques commentaires).

#6

Mis à jour par Thomas Noël il y a plus de 8 ans

En deux temps, un premier patch qui prend comme excuse une optimisation pour couper en deux le export_as_json

Et dans le second, le post_data dans le webservice

#7

Mis à jour par Frédéric Péters il y a plus de 8 ans

Je n'avais pas noté ça plus tôt mais en voyant le test, plutôt que le eval() direct, je préférerais que compute() soit utilisé (en lui ajoutant peut-être un raises=False comme paramètre).

#8

Mis à jour par Thomas Noël il y a plus de 8 ans

(et j'ai ajouté un test pour le cas formdata+post_data, et complété un peu le test de POST du formdata)

#9

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Fichier 0001-wscall-allow-extra-data-on-POST-6622.patch supprimé
#10

Mis à jour par Frédéric Péters il y a plus de 8 ans

Ça m'a l'air tout à fait ok.

#11

Mis à jour par Frédéric Péters il y a plus de 8 ans

Peut-être juste encore ajouter des infos à help/fr/wf-wscall.page.

#12

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Statut changé de En cours à Résolu (à déployer)

Voilà, poussé avec un brin de doc.

commit 6c5cda54e30c7b2ac9ee545e707e25fed28965f5
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Mon Aug 31 17:42:41 2015 +0200

    wscall: allow extra data on POST (#6622)

commit 15347ad5f6e0c15e4674b7ab7ab9e010de44b823
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Mon Aug 31 17:00:19 2015 +0200

    remove inefficient json.loads(json.dumps()) in listing API

#13

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Version cible mis à v1.13.4
#14

Mis à jour par Thomas Noël il y a plus de 8 ans

Je propose d'élargir les colonnes du WidgetDict pour faciliter la lecture des "post data" (les dimensions proposées ici permettent un affichage lisible des données post data liées au connecteur Maarch de Passerelle).

#15

Mis à jour par Frédéric Péters il y a plus de 8 ans

Bof (je préférerais que ça s'arrange via des CSS).

#16

Mis à jour par Thomas Noël il y a plus de 8 ans

Et donc, la proposition de Fred (testée avec succès)

#17

Mis à jour par Frédéric Péters il y a plus de 8 ans

Je suis d'accord.

#18

Mis à jour par Thomas Noël il y a plus de 8 ans

commit ff5a448e1239b020c1707e676aeb1dac09ae9832
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Sep 8 14:21:10 2015 +0200

    wscall: improve post data presentation (#6622)

Le message de commit n'est finalement pas correct, parce que le patch modifie "tous" les WidgetDict, mais voilà, trop tard. Heureusement que j'ai mis le bon auteur.

#19

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF