Projet

Général

Profil

Development #35361

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

Ajouté par Serghei Mihai il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
12 août 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Pour avoir un referentiel


Fichiers

Révisions associées

Révision ff87ebb7 (diff)
Ajouté par Serghei Mihai il y a plus de 4 ans

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

Historique

#2

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Ç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

Mis à jour par Serghei Mihai il y a plus de 4 ans

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

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

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

Mis à jour par Serghei Mihai il y a plus de 4 ans

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

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

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

Mis à jour par Serghei Mihai il y a plus de 4 ans

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

Mis à jour par Serghei Mihai il y a plus de 4 ans

  • Sujet changé de api_entreprise: listes les types de documents d'association à api_entreprise: permettre de savoir si un document d'association d'un type particulier existe
#9

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

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

Mis à jour par Serghei Mihai il y a plus de 4 ans

Yep.

#11

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

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

Mis à jour par Serghei Mihai il y a plus de 4 ans

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

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

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

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

  • Statut changé de Solution proposée à 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

Mis à jour par Serghei Mihai il y a plus de 4 ans

  • Statut changé de Solution validée à 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

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

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

Formats disponibles : Atom PDF