Newer
Older
web-services / loterre-resolvers / v1 / D63 / identify.ini
@Nicolas Thouvenin Nicolas Thouvenin on 30 Jun 2022 3 KB change url, use latest release
# OpenAPI Documentation - JSON format (dot notation)
mimeType = application/json

post.operationId = post-v1-D63-identify
post.description = Associer une communes de France au vocabulaire Loterre correspondant - https://www.loterre.fr/skosmos/D63/fr/
post.summary = verbalisation à partir d'un tableau d'objets avec à minima un champ value contenant des termes
post.tags.0 = loterre-resolvers
post.requestBody.content.application/json.example.0.id = 1
post.requestBody.content.application/json.example.0.value = Nancy
post.requestBody.content.application/json.example.1.id = 2
post.requestBody.content.application/json.example.1.value = Pagny sur Moselle
post.requestBody.content.application/json.example.2.id = 3
post.requestBody.content.application/json.example.2.value = Trifouilly
post.requestBody.content.application/json.schema.$ref = #/components/schemas/JSONStream
post.requestBody.required = true
post.responses.default.content.application/json.example.0.id = 1
post.responses.default.content.application/json.example.0.value = {...}
post.responses.default.content.application/json.example.1.id = 2
post.responses.default.content.application/json.example.1.value = {...}
post.responses.default.content.application/json.example.2.id = 3
post.responses.default.content.application/json.example.2.value = {...}
post.responses.default.content.application/json.schema.$ref =  #/components/schemas/JSONStream
post.responses.default.description = Les prefixes DOI en verion textuel
post.parameters.0.description = Indenter le JSON résultant
post.parameters.0.in = query
post.parameters.0.name = indent
post.parameters.0.schema.type = boolean

[env]
path = primer
value = https://www.loterre.fr/wp-content/uploads/2022/06/Communes.xml

# Necessary plugins
[use]
plugin = basics
plugin = analytics
plugin = storage

# Flow configuration
[JSONParse]
separator = *

[expand]
path = value
size = 1
cacheName = env('primer').append('identify')

[expand/assign]
path = value
value = fix(_.deburr(String(self.value).replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/\s]/g, '').toLowerCase()))

[expand/combine]
path = value
primer = env('primer')
file = ./v1/combine.ini
cacheName = post-v1-D63-identify

[expand/remove]
test = get('value.value').isString()

[expand/replace]
path = id
value = get('id')

path = value.id
value = get('value.id')

path = value.cartographyCode
value = get('value.value.inist$lodexPlacenameCode/$t')

path = value.about
value = get('value.value.rdf$about')

path = value.prefLabel@fr
value = get('value.value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift()

path = value.prefLabel@en
value = get('value.value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift()

path = value.wikidataURI
value = get("value.value.wdt$P36/rdf$resource")

path = value.geonameURI
value = get('value.value.gn$geonamesID/$t').prepend('https://www.geonames.org/')

path = value.countryCode
value = get('value.value.gn$countryCode/$t')

path = value.latitude
value = get('value.value.geo$lat/$t')

path = value.longitude
value = get('value.value.geo$long/$t')

path = value.localization@en
value =  get('value.value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift())

path = value.localization@fr
value =  get('value.value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift())


[dump]
indent = env('indent', false)