Project

General

Profile

Development #35361

api_entreprise: permettre de savoir si un document d'association d'un type particulier existe

Added by Serghei Mihai 2 months ago. Updated about 1 month ago.

Status:
Solution déployée
Priority:
Normal
Assignee:
Target version:
-
Start date:
12 Aug 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Pour avoir un referentiel

0001-api_entreprise-add-endpoint-to-get-last-document-of-.patch View (4.85 KB) Serghei Mihai, 21 Aug 2019 11:26 AM

0001-api_entreprise-add-endpoint-to-get-last-document-of-.patch View (4.83 KB) Serghei Mihai, 05 Sep 2019 02:54 PM

0002-api_entreprise-add-endpoint-to-get-last-document-of-.patch View (4.83 KB) Serghei Mihai, 05 Sep 2019 03:20 PM

0001-api_entreprise-update-endpoints-parameters-descripti.patch View (6.49 KB) Serghei Mihai, 05 Sep 2019 03:20 PM

Associated revisions

Revision ff87ebb7 (diff)
Added by Serghei Mihai about 1 month ago

api_entreprise: add endpoint to get last document of given type (#35361)

History

#2 Updated by Benjamin Dauvergne 2 months ago

Ça ne me semble pas nécessaire pour la demande de Arles, il suffit d'avoir un argument type au endpoint et trier le résultat filtrer par ordre anti-chronologique, les types on les connaît (ou si on les connaît pas on ne risque pas de les demander).

Par contre on peut afficher la liste des types connus dans le résumé du connecteur, c'est de la doc en ligne.

#3 Updated by Serghei Mihai 2 months ago

Benjamin Dauvergne a écrit :

Ça ne me semble pas nécessaire pour la demande de Arles, il suffit d'avoir un argument type au endpoint et trier le résultat filtrer par ordre anti-chronologique, les types on les connaît (ou si on les connaît pas on ne risque pas de les demander).

Je suis d'accord avec toi.
En revanche, comme certains documents n'ont pas de type, il me semble impossible de garantir que tous les types définis dans la doc soient présents pour une association donnée.
D'ou l'idée de pouvoir le lister.

#4 Updated by Benjamin Dauvergne 2 months ago

Serghei Mihai a écrit :

Benjamin Dauvergne a écrit :

Ça ne me semble pas nécessaire pour la demande de Arles, il suffit d'avoir un argument type au endpoint et trier le résultat filtrer par ordre anti-chronologique, les types on les connaît (ou si on les connaît pas on ne risque pas de les demander).

Je suis d'accord avec toi.
En revanche, comme certains documents n'ont pas de type, il me semble impossible de garantir que tous les types définis dans la doc soient présents pour une association donnée.
D'ou l'idée de pouvoir le lister.

Soyons clairs, les documents qui n'ont pas de type on ne les récupérera pas, il y a une limite à la quantité de travail qu'on peut appliquer à une solution mal branlée. Le but c'est quand même d'avoir un système automatique "dites-le nous une fois" pas de proposer aux agents ou aux usagers d'explorer les méandres tortueux d'api-entreprise. Si un document n'a pas de type et s'appelle juste "StAtUt-deux-mille-dix-neuf.pdf" tant pis hein, ou alors on fait d'api-entreprise un backend à fargo où les association vont chercher leur document mais ça change complètement d'approche.

#5 Updated by Serghei Mihai 2 months ago

Benjamin Dauvergne a écrit :

Soyons clairs, les documents qui n'ont pas de type on ne les récupérera pas, il y a une limite à la quantité de travail qu'on peut appliquer à une solution mal branlée. Le but c'est quand même d'avoir un système automatique "dites-le nous une fois" pas de proposer aux agents ou aux usagers d'explorer les méandres tortueux d'api-entreprise. Si un document n'a pas de type et s'appelle juste "StAtUt-deux-mille-dix-neuf.pdf" tant pis hein, ou alors on fait d'api-entreprise un backend à fargo où les association vont chercher leur document mais ça change complètement d'approche.

Bien sûr: on ne récupère pas les documents sans type.
Mais je trouve d'avoir un moyen de lister les types de docs pour une asso, au lieu de retourner une 404 parce qu'on a demandé la liste des dirigeants alors qu'elle n'existe pas.

#6 Updated by Benjamin Dauvergne 2 months ago

Personne ne dit de retourner 404, faut juste un endpoint qui renvoie True or False et ainsi dans une condition on peut mettre webservice.association_has_liste_dirigeant.value sinon avec une liste il faudrait écrire bool([x for x in webservice.association_liste_document if x['type'] == 'Liste des dirigeants']) non ?

Tu vois comment pour que ce soit simple à utiliser dans w.c.s. avec un truc qui renvoie une liste plutôt que de renvoyer oui/non ou le fichier ?

#7 Updated by Serghei Mihai 2 months ago

D'accord avec toi sur un webservice signalant qu'un document de tel type existe et un autre pour retourner le dernier document de ce type.

#8 Updated by Serghei Mihai 2 months ago

  • Subject changed from api_entreprise: listes les types de documents d'association to api_entreprise: permettre de savoir si un document d'association d'un type particulier existe

#9 Updated by Benjamin Dauvergne 2 months ago

Si tu renvoies le descriptif du document avec l'URL de téléchargement plutôt que juste true/false ça devrait suffire.

GET /api_entreprise/slug/documents_association/W09343434/get-last/?type=Statuts
Accept: application/json

Content-Type: application/json

{
   "err": 0,
   "data": {
       "id": "whatever",
       "type": "Statuts",
       "text": "whatever",
       "url": "https://passerelle/api_entreprise/slug/W3434344/ishdfisidhfisdf/",
       "timestamp": "2019-04-05" 
   }
}

#10 Updated by Serghei Mihai about 2 months ago

Yep.

#11 Updated by Frédéric Péters about 1 month ago

On ne met pas de virgule avant trois petits points.

Perso côté code je 1/ ferais documents = [x for x in whatever if type == le type], puis 2/ documents.sort(key=...), puis 3/ return documents[-1].

C'est particulièrement pour le tri, qui est rendu ainsi beaucoup plus explicite.

#12 Updated by Serghei Mihai about 1 month ago

Frédéric Péters a écrit :

On ne met pas de virgule avant trois petits points.

Je vais faire un patch à part pour changer partout pour éviter à faire des traductions avec et sans virgule.
Ok pour rendre le tri plus explicite.

#13 Updated by Thomas Noël about 1 month ago

Serghei Mihai a écrit :

Frédéric Péters a écrit :

On ne met pas de virgule avant trois petits points.

Je vais faire un patch à part pour changer partout pour éviter à faire des traductions avec et sans virgule.

Ce que voulait Frédéric c'est corriger dès à présent dans ce patch :

  'Description': _('request object (form number, file identifier, ...)'),   →  request object: form number, file identifier...
  'description': _('request context (MPS, APS, ... )'),                     →  request context: MPS, APS...

Tiens on note d'ailleurs une erreur ici, un D majuscule sur la première description.

Sinon je parle mal anglais mais je crois que plus personne ne se fatigue à écrire 's comme dans « association's SIREN », tu peux directement écrire « association SIREN or RNA/WALDEC number » et zou (ok on s'en fout pas mal, ça sera jamais lu en anglais de toute façons)

#15 Updated by Thomas Noël about 1 month ago

  • Status changed from Solution proposée to Solution validée

Ok bien que je pense que le timestamp n'a rien à voir avec la date du document lui-même.

En vrai moi j'aurai juste ajouté la possibilité de filtrage par type dans documents_associations, à mon avis ça suffisait à tout usage.

#16 Updated by Serghei Mihai about 1 month ago

  • Status changed from Solution validée to Résolu (à déployer)

Effectivement on aurait pu filtrer par type, ensuite accéder au dernier élément de la liste depuis le formulaire/worflow.
Mais j'imagine le cas plutôt: je veux le dernier statut. Sans chercher combien y en a et lequel est le plus récent.

On verra à l'usage.

commit ff87ebb7c2b9220ed02b5b58d952c5bd12eea7c6 (origin/master, origin/HEAD)
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Mon Aug 12 12:21:59 2019 +0200

    api_entreprise: add endpoint to get last document of given type (#35361)

commit 5afa6b45f87720563561c162089a4487f47b2095
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Thu Sep 5 15:16:08 2019 +0200

    api_entreprise: update endpoints parameters description

#17 Updated by Frédéric Péters about 1 month ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF