Project

General

Profile

Development #6622

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

Added by Frédéric Péters (de retour le 10/10) over 7 years ago. Updated about 7 years ago.

Status:
Fermé
Priority:
Haut
Assignee:
Target version:
Start date:
05 March 2015
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
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.)


Files

Associated revisions

Revision fd9526cd (diff)
Added by Thomas Noël about 7 years ago

wscall: allow extra data on POST (#6622)

Revision ff5a448e (diff)
Added by Frédéric Péters (de retour le 10/10) about 7 years ago

wscall: improve post data presentation (#6622)

History

#1

Updated by Thomas Noël over 7 years ago

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

Updated by Frédéric Péters (de retour le 10/10) about 7 years ago

  • Priority changed from Normal to Haut

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

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

#3

Updated by Thomas Noël about 7 years ago

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

Updated by Thomas Noël about 7 years ago

#5

Updated by Frédéric Péters (de retour le 10/10) about 7 years ago

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

Updated by Thomas Noël about 7 years ago

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

Updated by Frédéric Péters (de retour le 10/10) about 7 years ago

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

Updated by Thomas Noël about 7 years ago

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

#9

Updated by Thomas Noël about 7 years ago

  • File deleted (0001-wscall-allow-extra-data-on-POST-6622.patch)
#10

Updated by Frédéric Péters (de retour le 10/10) about 7 years ago

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

#11

Updated by Frédéric Péters (de retour le 10/10) about 7 years ago

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

#12

Updated by Thomas Noël about 7 years ago

  • Status changed from En cours to 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

Updated by Thomas Noël about 7 years ago

  • Target version set to v1.13.4
#14

Updated by Thomas Noël about 7 years ago

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

Updated by Frédéric Péters (de retour le 10/10) about 7 years ago

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

#17

Updated by Frédéric Péters (de retour le 10/10) about 7 years ago

Je suis d'accord.

#18

Updated by Thomas Noël about 7 years ago

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

Updated by Thomas Noël about 7 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF