Projet

Général

Profil

Development #49520

API pour créer une fiche

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
16 décembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Comme il existe /api/formdefs/slug-de-formdef/submit pour créer une demande.

/api/cards/slug-de-carddef/@create (?)


Fichiers

0003-api-card-data-submit-49520.patch (19,3 ko) 0003-api-card-data-submit-49520.patch Lauréline Guérin, 22 février 2021 16:16
0001-misc-move-api-tests.patch (1005 octets) 0001-misc-move-api-tests.patch Lauréline Guérin, 22 février 2021 16:16
0002-misc-split-some-tests.patch (285 ko) 0002-misc-split-some-tests.patch Lauréline Guérin, 22 février 2021 16:16
0004-help-add-card-submit-API-49520.patch (3,96 ko) 0004-help-add-card-submit-API-49520.patch Lauréline Guérin, 26 février 2021 11:00
0003-api-card-data-submit-49520.patch (19,3 ko) 0003-api-card-data-submit-49520.patch Lauréline Guérin, 26 février 2021 11:00
0001-misc-move-api-tests.patch (3,29 ko) 0001-misc-move-api-tests.patch Lauréline Guérin, 26 février 2021 11:00
0002-misc-split-some-tests.patch (285 ko) 0002-misc-split-some-tests.patch Lauréline Guérin, 26 février 2021 11:00

Révisions associées

Révision 113089e4 (diff)
Ajouté par Lauréline Guérin il y a environ 3 ans

api: card data submit (#49520)

Révision 794e99bf (diff)
Ajouté par Lauréline Guérin il y a environ 3 ans

help: add card submit API (#49520)

Historique

#3

Mis à jour par Lauréline Guérin il y a environ 3 ans

Pour la création de demande, on gère beaucoup de choses. Quelques questions pour savoir ce dont on peut se passer:

        if 'data' in json_input:
            # the published API expects data in 'data'.
            data = json_input['data']
        elif 'fields' in json_input:
            # but the API also supports data in 'fields', to match the json
            # output produded by wf/wscall.py.
            ...

Est-ce qu'il faut gérer les deux formats data et fields ?

        if meta.get('backoffice-submission'):
            if not user:
                raise AccessForbiddenError('no user set for backoffice submission')
            if not self.formdef.backoffice_submission_roles:
                raise AccessForbiddenError('no backoffice submission roles')
            if not set(user.get_roles()).intersection(self.formdef.backoffice_submission_roles):
                raise AccessForbiddenError('not cleared for backoffice submit')
            formdata.backoffice_submission = True

Est-ce qu'on garde ça ?

Et le contexte de submission :

        if json_input.get('context'):
            formdata.submission_context = json_input['context']
            formdata.submission_channel = formdata.submission_context.pop('channel', None)
            formdata.user_id = formdata.submission_context.pop('user_id', None)

?

Gestion du user:

        elif 'user' in json_input:
            formdata_user = None
            for name_id in json_input['user'].get('NameID') or []:
                formdata_user = get_publisher().user_class.get_users_with_name_identifier(name_id)
                if formdata_user:
                    break
            else:
                if json_input['user'].get('email'):
                    formdata_user = get_publisher().user_class.get_users_with_email(
                        json_input['user'].get('email')
                    )
            if formdata_user:
                formdata.user_id = formdata_user[0].id
        elif user:
            formdata.user_id = user.id

Je suppose qu'on garde ?

Je ne crois pas qu'on gère de tracking code pour les fiches, ni la notion de "only_allow_one" ?

#4

Mis à jour par Frédéric Péters il y a environ 3 ans

Est-ce qu'il faut gérer les deux formats data et fields ?

Le cas où c'est utile ce serait la création d'une fiche via un appel webservice (avec la case "transmettre les données du formulaire" cochée); j'hésite pas mal, en penchant quand même sur l'idée que si on ne gère pas ça maintenant il y aura à le gérer un jour de toute façon.

if meta.get('backoffice-submission'):
Est-ce qu'on garde ça ?

Je dirais non.

Et le contexte de submission :

Pareil je dirais non.

Gestion du user:

Yes on garde.

Je ne crois pas qu'on gère de tracking code pour les fiches, ni la notion de "only_allow_one" ?

Non, on peut ignorer ça.

#5

Mis à jour par Lauréline Guérin il y a environ 3 ans

  • Assigné à mis à Lauréline Guérin
#6

Mis à jour par Lauréline Guérin il y a environ 3 ans

j'ai géré data et fields du coup

#7

Mis à jour par Frédéric Péters il y a environ 3 ans

Ok pour le code (je suis toujours à hésiter sur mon nommage des API, le préfixe avec @ comme introduit pour @schema et @list, pour éviter à coup sûr les conflits avec des slugs).

Tu peux ajouter une section dans help/fr/api-cards.page ? (tu peux copier/coller de help/fr/api-fill.page qui contient la partie sur les formulaires).

#9

Mis à jour par Frédéric Péters il y a environ 3 ans

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

(oui j'ai vu le build rouge mais c'est sans rapport, go).

#10

Mis à jour par Lauréline Guérin il y a environ 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 794e99bf27d0e263ea52f019cd29f426378a091e
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Fri Feb 26 10:58:42 2021 +0100

    help: add card submit API (#49520)

commit 113089e4b86ee14fe33cd5df2b421ef0d6ebe669
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 22 16:15:12 2021 +0100

    api: card data submit (#49520)

commit 69e97b1c42b2e06db5bf4ffb3782f156d4ad35cd
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 22 09:17:22 2021 +0100

    misc: split some tests

commit e8acd48cc03a98319f6d41f64951f7ef56c0f285
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 22 09:10:21 2021 +0100

    misc: move api tests
#11

Mis à jour par Frédéric Péters il y a environ 3 ans

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

Formats disponibles : Atom PDF