# 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

[delegate]
file = ./v1/D63.cfg

[delegate]
file = ./v1/process.cfg

[swing]
test = get('value').isObject()
[swing/replace]

# id field is required in order to work with lodex
path = id
value = get('id')

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

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

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

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

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

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

path = value.geonameURI
value = get('value.gn$geonamesID.xml$t', []).castArray().map(item => (item.xml$t ? item.xml$t : item)).prepend('https://www.geonames.org/')
#value = get('value.gn$geonamesID.xml$t').prepend('https://www.geonames.org/')

path = value.geonamesID
value = get('value.gn$geonamesID', []).castArray().map(item => (item.xml$t ? item.xml$t : item))

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

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

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

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

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

path = value.postalCode
value = get('value.vcard$postal-code', []).castArray().map(item => (item.xml$t ? item.xml$t : item))

path = value.cedexPostalCode
value = get('value.inist$cedex-postal-code', []).castArray().map(item => (item.xml$t ? item.xml$t : item))

[delegate]
file = ./v1/send.cfg
