Giter Club home page Giter Club logo

api-depot's People

Contributors

cedric-famibelle-pronzola avatar dependabot[bot] avatar fufeck avatar gllmr avatar jdesboeufs avatar magos92 avatar tmerlier avatar vinsag avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

api-depot's Issues

Aucune révision créée après un moissonnage sans erreurs

Contexte

Le moissonnage de Base Adresse Locale de Viviers-les-Montagnes (Tarn) s’effectue sans erreurs et pourtant, aucune révision n’est créée.

Investigation

Il y a deux sources pour le même organisme :

Il s’agit en réalité d’une ancienne page https://www.data.gouv.fr/fr/datasets/base-adresse-locale-de-viviers-les-montagnes-tarn/ qui n’existe plus (404). C’est désormais https://www.data.gouv.fr/fr/datasets/base-adresse-locale-de-viviers-les-montagnes-tarn-1/  (à noter le -1 en plus à la fin de l’URL).

Cette particularité ne devrait pas poser de problème, mais il est préférable de ne pas l'écarter.

Il est nécessaire de comprendre pourquoi aucune révision n’est liée aux harvests alors que celui-ci indique pas d’erreur ou blocage.

(status: completed et updateStatus: updated)

PROTO ID : rendre générique la route de différentiel

La route de différentiel de calcul de différentiel entre une révision et la révision current
doit être rendue plus générique afin de comparer deux révisions et pas forcément une révision avec la current.

Modifier cette route pour avoir une comparaison entre deux révisions peut importe les id de révision. Attention l'ordre est important.

Corriger la récupération de l'adresse email d'une commune lorsque des communes déléguées sont présentes

Contexte

Un utilisateur nous a remonté que l'adresse email renseignée lors de la demande d'habilitation était en réalité celle d'une commune déléguée.

En effet, l'adresse email récupérée pour la commune de Val d'Oust (56197) est [email protected]. Or celle-ci correspond à l'adresse email de la Chapelle Caro.

Réellement, les 3 mairies et leurs 3 adresses emails sont renvoyées par l'API, mais rien ne permet de les distinguer.

https://etablissements-publics.api.gouv.fr/v3/communes/56197/mairie

Proto ID : Exploiter un fichier des évènements fourni via l'API

Dans le sprint 2 du prototype de l'identifiant unique.

Un fichier d'évènements indiquant des précisions telles que "suppression simple d'adresse"... pourra être fourni en même temps ou à part du fichier BAL à l'étape 3.

prendre en compte ce fichier d'évènements pour compléter les évènements calculés automatiquement via le calcul différentiel entre les V0 et V1.

Problème de concurrence à la publication d'une révision

Contexte

Il a été constaté qu'il est possible que des révisions publiées en même temps (une différence inférieure à la seconde) entre en concurrence. Cela a pour effet qu'elles changent mutuellement la propriété current à false. En conséquence, la commune ne dispose plus de révision courante.

Il est donc nécessaire de mettre en place un "verrou" empêchant ses publications concurrentes en rejetant l'une des deux ou alors en reprogrammant la publication à l'aide d'un cron par exemple.


Actuellement, quatre communes sont concernées :

  • 84112
  • 61189
  • 18204
  • 26082

ProtoID:Modifier Exploitation d'un fichier des évènements fourni via l'API

Modifier la route diff-bal: PUT /revisions/{idrevisision}/files/diff-bal
Il faut utiliser la table files avec le champ type=diff
Ca permettra d'utiliser les fonctions faisant appel aux donnees de la table file

exemple de fichier json en body
{
"countDeleted": 2,
"deletedIds": [
"fcbe3db6-b995-48af-9f69-b3fe67d5c0ff",
"655e9126-8c77-4818-bde9-258c97fc1741"
]
}

Suppression d'une révision par un administrateur

Contexte

Il peut arriver qu'une commune demande la dé-publication d'une BAL. Bien que cette pratique soit fortement déconseillée, elle peut être nécessaire dans le cas d'une suppression massive des adresses par exemple.

La suppression d'une révision par une action d'un administrateur est donc nécessaire.

Mise en place

  • Identification grâce à un token admin
  • Ajout d'une route de suppression DELETE /revisions/:revisionId

Action

Cette route doit :

  • supprimer les fichiers associés à la révision concernée
  • supprimer la révision
  • passer la révision précédente (la plus récente et valide connue pour la commune) en current

Comment obtenir la liste des codes erreur de validation possibles et leur signification

Bonjour,

Je teste sur le webservice de démo, et avec une donnée un peu bidon (pour le moment), j'obtiens une erreur de validation (c'était le but):

{"valid": false, "errors": ["position.valeur_invalide", "row.incoherence_numero"]}

Dans "errors", je retrouve des chaînes qui ressemblent à des clés i18n. Elles sont relativement lisibles, mais serait-il possible:

  • d'avoir la liste de toutes les clés error possibles ?
  • d'avoir la correspondance avec les libellés en français correspondant à l'erreur?

Idéalement, il faudrait aussi que l'erreur indique sur quel(s?) enregistrement l'erreur se produit, car là, c'est un peu nébuleux, si on a des milliers d'adresses dans le CSV qui est envoyé.
Je ne sais pas jusqu'où votre API peut gérer cela, mais si chaque "error" pouvait être un objet JSON, avec une propriété "key" pour la clé i18n, une propriété "label" avec le texte en français, et par exemple la liste des cle_interop qui sont concernées par cette erreur, cela pourrait permettre un feedback utilisateur bien plus intéressant pour les intégrateurs !

Merci !

langues régionales : l'attribut voie_nom_xxx ne peut être vide

L'API de dépôt et le validateur indiquent que l'attribut voie_nom_bre ne peut être vide.

Or, en toute logique il me semble évident que l'attribut supplémentaire et optionnel voie_nom_bre puisse être une chaîne vide car la "traduction" / remise en bonne dénomination peut ne pas être complète du premier coup sur une commune.

image

ProtoID: Ajout test pour vérifier si nous avons un uuid ou pas

Afin de pouvoir commencer à migrer la branche prototype vers master pour l'identifiant unique. Nous avons besoin de tester si uid_adresse fait partie des champs avant d'utiliser le calc-diff sinon nous devons renvoyer une erreur indiquant que cette route est uniquement réservée pour le calcul des différences entre 2 révisions ayant un uid_adresse

La requête PUT sur /revisions/xxx/files/bal renvoie un code HTTP 201 mais la documentation indique 200

Bonjour,

Je teste l'envoi en Python d'un fichier CSV sur l'endpoint PUT /revisions/xxx/files/bal. le status_code renvoyé est 201 (Created) alors que la doc:
https://github.com/BaseAdresseNationale/api-depot/wiki/Documentation#%C3%89tape-2--t%C3%A9l%C3%A9versement-du-fichier-bal

Indique 200. Je ne sais pas si PUT devrait renvoyer un OK ou un Created, donc soit il faut corriger l'endpoint, soit il faut corriger la documentation

Merci !

Dépôt d'une BAL en erreur provoque déficit d'adresse

Comportement attendu :

  • Une bal est déposée
  • Si elle est valide elle crée une nouvelle révision
  • Si le fichier est invalide la publication est bloquée
  • Si la nouvelle révision généré un déficit d'adresse trop important la publication est bloquée

Comportement observé :

  • Une BAL invalide est déposée
  • une nouvelle révision est créée
  • la publication est effective
  • la commune perd toutes ses adresses

Exemple : SI de Saint Quentin en Yvelines

Un CSV invalide est déposé via API, il est formaté avec un encodage exotique 'utf-8-sig'
Les carriages return des lignes ne sont pas parsés '\r\n', les caractères non-ascii non plus (ex: '\xc3\xa9')

Uploading bal-78423_en_erreur.csv…

Pourtant, aucune erreur n'est trigger pas le validateur.
Le fichier est parsé comme sans adresses est quand même publiée.

Montigny-le-Bretonneux - 78423
Page commune :
https://adresse.data.gouv.fr/commune/78423
Api dépot :
https://plateforme.adresse.data.gouv.fr/api-depot/communes/78423/revisions

Toutes communes du SI de Saint Quentin en Yvelines sont impactés.

L'API rejette le type de position "entrance" avec une erreur "position.valeur_invalide"

Bonjour,

Je fais un test avec la donnée (fictive) suivante:

uid_adresse;cle_interop;commune_insee;commune_nom;commune_deleguee_insee;commune_deleguee_nom;voie_nom;lieudit_complement_nom;numero;suffixe;position;x;y;long;lat;cad_parcelles;source;date_der_maj
;61002_1658_00001;61002;Almenêches;;;Voie test;;1;;entrance;484157.65;6818412.33;0.0135;48.1297;;ban;2021-11-17

La "position" est donc "entrance". Je me réfère à ce document :

https://aitf-sig-topo.github.io/voies-adresses/files/AITF_SIG_Topo_Format_Base_Adresse_Locale_v1.2.pdf

Qui indique que les valeurs de "position" sont celles de la codelist "GeometrySpecificationValue" de la directive INSPIRE:

https://inspire.ec.europa.eu/codelist/GeometrySpecificationValue

Passer une valeur "entrance" me parait donc OK, mais c'est rejeté par l'API dépôt avec l'erreur "position.valeur_invalide".

Quelles sont les valeurs valides de "position" svp ?

Merci !

Valeur du ready à l'étape 3 dans la documentation

Dans la documentation, il est précisée à l’étape 4, que la révision est publiable si le paramètre ready = false mais après test de l'API le texte renvoyé par l’API à l’étape 3 le ready = true ?

Proto ID : Prévoir le renvoi d'informations supplémentaire au besoin via l'API de dépôt

Dans le sprint 2, l'utilisateur va fournir ou pas un fichier d'évènement en plus du fichier CSV BAL.

Pour déterminer les évènements :

  • étape 1 : détection automatique par différentiel
  • étape 2 : exploitation d'un fichier d'évènement livré avec le CSV
  • étape 3 : demander la complétion des informations (prévoir la réponse à l'envoi et prévoir la route pour récupérer les informations complémentaires)

Ce ticket concerne l'implémentation de l'étape 3.

Corriger l'URL de l'API envoyé par email

Contexte

À la création d'un nouveau client, un email est envoyé avec l'URL de l'API à utiliser.

Il y a visiblement une erreur sur la configuration du mail ou de la variable
Capture d’écran 2023-03-31 à 13 53 28

Proto ID : modifier la route compute pour prendre en compte le différentiel

Modifier la route compute POST /revisions/{idrevision}/compute

pour qu'elle prenne en compte une partie qui fait appel à :

  • la fonction de différentiel cf ticket #29
  • au fichier en base #30
    -> et compare les id supprimés

-> si on a égalité alors on permet d'avoir le ready true pour le publish.
-> si on a pas égalité on a un message d'erreur qui empèche d'aller plus loin

Code JSON renvoyé en GET

Dans la requête GET pour obtenir les révisions d’une commune, le code JSON renvoyé est entre [ ] contrairement aux requêtes POST ou PUT. Cet état de fait empêche notre FME de lire par défaut en JSON. Nous devons supprimer ces caractères au préalable. Est-ce normal ou une erreur ?

Ne pas envoyer de mail en mode demo

Context

L'api-depot envoi un mail a la création d'un client, lors d'un refresh token et lorsqu'on envoie le code pin de l'habilitation.
Or il n'y a pas de serveur smtp sur l'api-depot-demo, cela provoque une erreur 500

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.