# OpenAPI Documentation - JSON format (dot notation) mimeType = application/json post.operationId = post-v1-9SD-identify post.description = Associer un pays ou subdivision au vocabulaire Loterre correspondant - https://www.loterre.fr/skosmos/9SD/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 = Pays de la Loire post.requestBody.content.application/json.example.1.id = 2 post.requestBody.content.application/json.example.1.value = Grand-Duché de Luxembourg post.requestBody.content.application/json.example.2.id = 3 post.requestBody.content.application/json.example.2.value = CAN 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://inist-wsdata.dboard.inist.fr/loterre-resolvers-pays.xml path = weekNumber value = thru(() => new Date()).thru(currentDate => Math.floor((currentDate - (new Date(currentDate.getFullYear(), 0, 1)))/(24 * 60 * 60 * 1000))).thru(days => Math.ceil(days / 7)) # Necessary plugins [use] plugin = basics plugin = analytics plugin = storage # Flow configuration [JSONParse] separator = * [expand] path = value size = 1 cacheName = env('weekNumber').prepend('post-v1-9SD-identify-week') [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 = env('weekNumber').prepend('post-v1-9SD-combine-week') [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()) ; Pour les documents sans résulat, on donne une valeur par défaut [swing] test = get('value.id').isEmpty() [swing/assign] path = value value = fix('n/a') [dump] indent = env('indent', false)