diff --git a/loterre-resolvers/v1/2XK.cfg b/loterre-resolvers/v1/2XK.cfg new file mode 100644 index 0000000..bb1d1e6 --- /dev/null +++ b/loterre-resolvers/v1/2XK.cfg @@ -0,0 +1,15 @@ +[env] +path = primer +value = env("TABLE_SERVER_URL", "http://mapping-tables.daf.intra.inist.fr/").concat("loterre-structures-recherche.xml").join("") + +path = loterreID +value = fix('2XK') + +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)) + + +# +# A noter : +# L'utilisation d'un fichier .cfg évite de faire apparaitre ce fichier comme une route dans la documentation openAPI +# diff --git a/loterre-resolvers/v1/2XK/expand.ini b/loterre-resolvers/v1/2XK/expand.ini index 2184e7a..39121b8 100644 --- a/loterre-resolvers/v1/2XK/expand.ini +++ b/loterre-resolvers/v1/2XK/expand.ini @@ -21,12 +21,8 @@ post.parameters.1.schema.type = boolean post.parameters.1.description = Indent or not the JSON Result -[env] -path = primer -value = env("TABLE_SERVER_URL", "http://mapping-tables.daf.intra.inist.fr/").concat("loterre-structures-recherche.xml").join("") - -path = loterreID -value = fix('2XK') +[delegate] +file = ./v1/2XK.cfg [delegate] file = ./v1/process.ini diff --git a/loterre-resolvers/v1/2XK/identify.ini b/loterre-resolvers/v1/2XK/identify.ini index a8c13b5..aac46d0 100644 --- a/loterre-resolvers/v1/2XK/identify.ini +++ b/loterre-resolvers/v1/2XK/identify.ini @@ -26,18 +26,25 @@ post.parameters.0.name = indent post.parameters.0.schema.type = boolean -[env] -path = primer -value = env("TABLE_SERVER_URL", "http://mapping-tables.daf.intra.inist.fr/").concat("loterre-structures-recherche.xml").join("") - -path = loterreID -value = fix('2XK') +[delegate] +file = ./v1/2XK.cfg [delegate] file = ./v1/process.ini [swing] test = get('value').isObject() + +# Astuce : pour simplifier les clés sur tout l'objet +[swing/map] +path = value +[swing/map/exchange] +value = self().mapKeys((value, key) => key.replace(/\/\$t/g, '')) +[swing/assign] +path = value +value = get('value').pop() + +# Sélection de champs [swing/replace] path = id @@ -50,19 +57,103 @@ value = get('value.rdf$about') path = value.prefLabel@fr -value = get('value.skos$prefLabel').castArray().concat({$t:_.get(self, 'value.skos$prefLabel/$t', 'n/a'), xml$lang:_.get(self, 'value.skos$prefLabel/xml$lang', 'n/a')}).filter(Boolean).filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').castArray().concat({$t:_.get(self, 'value.skos$prefLabel', 'n/a'), xml$lang:_.get(self, 'value.skos$prefLabel/xml$lang', 'n/a')}).filter(Boolean).filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift() path = value.prefLabel@en value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift() path = value.codeRNSR -value = get('value.wdt$P3016/$t') +value = get('value.wdt$P3016', []).castArray().map(item => (item.$t ? item.$t : item)) path = value.latitude -value = get('value.geo$lat/$t') +value = get('value.geo$lat') path = value.longitude -value = get('value.geo$long/$t') +value = get('value.geo$long') + +path = value.codeUniteCNRS +value = get('value.wdt$P4550') + +path = value.libelleOrigine +value = get('value.wdt$P1705') + +path = value.sigle +value = get('value.wdt$P1813') + +path = value.type +value = get('value.wdt$P31') + +path = value.GRID +value = get('value.wdt$P2427') + +path = value.ISNI +value = get('value.wdt$P213') + +path = value.VIAF +value = get('value.wdt$P214') + +path = value.HAL +value = get('value.wdt$P6773') + +path = value.IdRef +value = get('value.wdt$P269') + +path = value.SIREN +value = get('value.wdt$P1616') + +path = value.SIRET +value = get('value.wdt$P3215') + +path = value.dateCreation +value = get('value.wdt$P580') + +path = value.dateFermeture +value = get('value.wdt$P582') + +path = value.libelleOrigine +value = get('value.wdt$P1705') + +path = value.tutellePrincipale +value = get('value.inist$tutellePrincipale', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.tutelleSecondaire +value = get('value.inist$tutelleSecondaire', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.institutPrincipal +value = get('value.inist$institutPrincipal', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.institutSecondaire +value = get('value.inist$institutSecondaire', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.delegationRegionale_dep +value = get('value.inist$dr_cnrs_dep', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.delegationRegionale_impl +value = get('value.inist$dr_cnrs_impl') + +path = value.sectionComiteNational +value = get('value.inist$sectionCN', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.portefeuilleDAS +value = get('value.inist$portefeuilleDAS', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.site +value = get('value.inist$site', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.childStructure +value = get('value.inist$structureComposite', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.replacedBy +value = get('value.cdt$isReplacedBy', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.replaces +value = get('value.cdt$replaces', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.address +value = get('value.org$siteAddress', []).castArray().map(item => (item.$t ? item.$t : item)) + +path = value.homepage +value = get('value.foaf$homepage', []).castArray().map(item => (item.$t ? item.$t : item)) [dump] indent = env('indent', false)