# Configuration du chemin de stockage des bases des données locales
[env]
path = location
value = fix(`${env('TMPDIR', '/tmp')}/databases/${env('weekNumber')}/${env('loterreID', 'noid')}`)

# STEP 0 : On noramise la valeur à rechercher (de la même manière que l'index a été créé)
[assign]
path = value
value = fix(_.deburr(String(self.value).replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/\s]/g, '').toLowerCase()))

path = loterreID
value = env('loterreID')

# primer contient l'URL à Télécharger (voir download.ini)
path = primer
value = env('primer')

# STEP 1 : On vérifie si le vocabulaire est présent localement
[load]
location = env('location')
domain = fix('loterre-vocabulaires').append('-loaded')
path = loterreID
target = isAlreadyDownload

# STEP 1.1 : si il n'est pas présent localement
[swing]
test = get('isAlreadyDownload').isEmpty()

# STEP 1.2 : on mémorise le fait que l'on va en faire une copie local
[swing/save]
location = env('location')
domain = fix('loterre-vocabulaires').append('-loaded')
path = loterreID

# STEP 1.3 : On télécharge la version distante en XML, on la convertit en JSON et on sauvegarde localement
[swing/singleton]
file = ./v1/download.cfg

# STEP 1.4 : Avec la version JSON fraichement généré on construit un index inversé
[swing/singleton]
file = ./v1/compile.cfg

[swing/exchange]
value = self().pick(['id', 'value', 'state'])

# STEP 2 : On cherche une correspondance dans l'index inversé
[load]
location = env('location')
domain = env('loterreID').prepend('loterre-').append('indexes')
path = value
target = result

[replace]
path = id
value = get('id')
path = value
value = get('result.value', 'n/a')

# STEP 2 : si l'index inversé nous donne une URI, avec on va chercher les informations associées
[expand]
path = value
file = ./v1/transcribe.cfg

