Plus besoin de re-chercher avec un processus complexe : une page liste les adresses de service non conformes (review/unmatched) avec leur proposition AQ canonique, et permet de RÉSOUDRE une fois (persisté) : - Approuver : la proposition AQ devient officielle (validated, coords RQA). - Corriger : recherche AQ locale (rqa_addresses + fibre) → lier la bonne adresse. - GPS : saisir/coller lat,long (relevé sur map.targointernet.com qui a la géoloc des unités de camping) + lien direct « voir sur la carte » par ligne. - Rejeter : pas d'adresse civique (boîte postale/hors-QC) → 'no_address'. Tri par type (camping / civique à corriger / à confirmer / non-adresse) + stats + recherche + pagination. Backend : lib/address-conformity.js (GET stats|list|candidates, POST resolve) sur le Postgres LOCAL, routé /address/conformity/* (server.js). Front : api/address.js + pages/AddressConformityPage.vue + route /conformite-adresses + entrée nav « Conformité adresses » (icône MapPinned, requires view_settings). État courant : validated 15 195 · review 1 366 · unmatched 550 (camping 540 / civique 333 / non-adresse 93). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
23 lines
1.1 KiB
JavaScript
23 lines
1.1 KiB
JavaScript
/**
|
|
* API Conformité des adresses — appelle targo-hub /address/conformity/*.
|
|
* Source de vérité : Service Location (lien AQ local rqa_addresses). Voir services/targo-hub/lib/address-conformity.js.
|
|
*/
|
|
import { HUB_URL as HUB } from 'src/config/hub'
|
|
|
|
async function jget (path) {
|
|
const r = await fetch(HUB + path)
|
|
if (!r.ok) throw new Error('Address API ' + r.status)
|
|
return r.json()
|
|
}
|
|
async function jpost (path, body) {
|
|
const r = await fetch(HUB + path, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body || {}) })
|
|
if (!r.ok) throw new Error('Address API ' + r.status)
|
|
return r.json()
|
|
}
|
|
|
|
export const conformityStats = () => jget('/address/conformity/stats')
|
|
export const conformityList = (p) => jget('/address/conformity/list?' + new URLSearchParams(p).toString())
|
|
export const conformityCandidates = (q) => jget('/address/conformity/candidates?q=' + encodeURIComponent(q))
|
|
// action: approve | correct | gps | reject (+ aq_address_id/linked_address/latitude/longitude selon l'action)
|
|
export const conformityResolve = (body) => jpost('/address/conformity/resolve', body)
|