add bnf resolver in common addon + applications
authorymh <ymh.work@gmail.com>
Sun, 28 Feb 2016 09:30:23 +0100
changeset 134 c06d08c8a1b8
parent 133 821253d361d1
child 135 66c1d31e2f97
add bnf resolver in common addon + applications
cms/app-client/app/mirage/config.js
cms/app-client/app/mirage/fixtures/bnf.js
cms/app-client/app/templates/application.hbs
cms/app-client/app/templates/player.hbs
cms/app-client/app/templates/results.hbs
cms/app-client/app/templates/tabs/detail.hbs
common/corpus-common-addon/addon/components/doc-generic.js
common/corpus-common-addon/addon/components/doc-language.js
common/corpus-common-addon/addon/components/doc-subject.js
common/corpus-common-addon/addon/helpers/get-link-type.js
common/corpus-common-addon/addon/templates/components/doc-generic.hbs
common/corpus-common-addon/addon/templates/components/doc-language.hbs
common/corpus-common-addon/addon/templates/components/doc-subject.hbs
common/corpus-common-addon/addon/utils/constants.js
common/corpus-common-addon/app/components/doc-generic.js
common/corpus-common-addon/app/components/doc-language.js
common/corpus-common-addon/app/components/doc-subject.js
common/corpus-common-addon/app/helpers/get-link-type.js
common/corpus-common-addon/app/services/bnf-resolver.js
common/corpus-common-addon/app/services/lexvo-resolver.js
common/corpus-common-addon/app/templates/components/doc-language.hbs
common/corpus-common-addon/package.json
common/corpus-common-addon/tests/integration/components/doc-generic-test.js
common/corpus-common-addon/tests/unit/helpers/get-link-type-test.js
server/bo_client/app/templates/doc.hbs
server/bo_client/server/fixtures/bnf.js
server/bo_client/server/fixtures/lexvo.js
server/bo_client/server/fixtures/viaf.js
server/bo_client/server/mocks/bnf.js
server/bo_client/server/mocks/lexvo.js
server/bo_client/server/mocks/viaf.js
--- a/cms/app-client/app/mirage/config.js	Thu Feb 25 21:26:15 2016 +0100
+++ b/cms/app-client/app/mirage/config.js	Sun Feb 28 09:30:23 2016 +0100
@@ -51,6 +51,29 @@
 
   });
 
+  this.get('/bnf/:ids', function(db, request) {
+
+    var bnfIds = decodeURIComponent(request.params.ids);
+    var resMap = _.reduce(bnfIds.split(','), function(res, id) {
+        var fullId = id;
+        if(_.startsWith(fullId, constants.BNF_BASE_URL)) {
+          fullId = fullId.slice(constants.BNF_BASE_URL.length);
+        } else if (_.startsWith(fullId, constants.BNF_ARK_BASE_URL)) {
+          fullId = fullId.slice(constants.BNF_ARK_BASE_URL.length);
+        } else if (!_.startsWith(fullId, constants.BNF_ARK_BASE_ID)) {
+          fullId = constants.BNF_ARK_BASE_ID + fullId;
+        }
+        var bnfRes = db.lexvo.find(fullId);
+        res[fullId] = bnfRes?bnfRes.label:null;
+        return res;
+    }, {});
+
+    return {
+      'bnfids': resMap
+    };
+
+  });
+
   /*
     Route shorthand cheatsheet
   */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/mirage/fixtures/bnf.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,6 @@
+export default {
+  "ark:/12148/cb11965628b": "frères et soeurs",
+  "ark:/12148/cb11946662b": "parents et enfants",
+  "ark:/12148/cb119766112": "miséricorde",
+  "ark:/12148/cb11970755h": "repentir"
+};
--- a/cms/app-client/app/templates/application.hbs	Thu Feb 25 21:26:15 2016 +0100
+++ b/cms/app-client/app/templates/application.hbs	Sun Feb 28 09:30:23 2016 +0100
@@ -19,7 +19,7 @@
       </div>
       <div class="dialog-body">
         <p><b>Titre </b>{{modalItem.title}}</p>
-        <p><b>Langue </b>{{doc-language language=modalItem.language}}</p>
+        <p><b>Langue </b>{{doc-language url=modalItem.language}}</p>
         <p><b>Enregistré le </b>{{modalItem.modified}}</p>
         <p><b>Interviewer </b>{{modalItem.publishers}}</p>
         <p><b>Description </b>{{modalItem.description}}</p>
--- a/cms/app-client/app/templates/player.hbs	Thu Feb 25 21:26:15 2016 +0100
+++ b/cms/app-client/app/templates/player.hbs	Sun Feb 28 09:30:23 2016 +0100
@@ -3,5 +3,5 @@
   {{player-component action="changeDocument" document=currentItem}}
 
   <p><strong>{{ currentItem.title }}</strong></p>
-  <p>{{doc-language language=currentItem.language}}</p>
+  <p>{{doc-language url=currentItem.language}}</p>
 </div>
--- a/cms/app-client/app/templates/results.hbs	Thu Feb 25 21:26:15 2016 +0100
+++ b/cms/app-client/app/templates/results.hbs	Sun Feb 28 09:30:23 2016 +0100
@@ -26,7 +26,7 @@
       <span class="playing-indicator fa fa-play-circle fa-lg fa-fw pull-right" {{action 'play' item}}></span>
       <strong>{{ item.title }}</strong>
       <div class="description">
-        {{doc-language language=item.language}}
+        {{doc-language url=item.language}}
       </div>
       <div class="hidden-elt">
         <button class="pull-right" {{action 'toggleModal' item}}>Details</button>
--- a/cms/app-client/app/templates/tabs/detail.hbs	Thu Feb 25 21:26:15 2016 +0100
+++ b/cms/app-client/app/templates/tabs/detail.hbs	Sun Feb 28 09:30:23 2016 +0100
@@ -4,7 +4,7 @@
   </div>
   <div class="notice-body">
     <p><b>Titre </b>{{model.title}}</p>
-    <p><b>Langue </b>{{doc-language language=model.language}}</p>
+    <p><b>Langue </b>{{doc-language url=model.language}}</p>
     <p><b>Enregistré le </b>{{model.modified}}</p>
     <p><b>Interviewer </b>{{model.publishers}}</p>
     <p><b>Description </b>{{model.description}}</p>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/addon/components/doc-generic.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,7 @@
+import Ember from 'ember';
+import layout from '../templates/components/doc-generic';
+
+export default Ember.Component.extend({
+  layout: layout,
+  tagName: 'span'
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/addon/components/doc-language.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,26 @@
+import Ember from 'ember';
+import * as constants from 'corpus-common-addon/utils/constants';
+import layout from '../templates/components/doc-language';
+
+export default Ember.Component.extend({
+    layout: layout,
+    tagName: "span",
+
+    lexvoResolver: Ember.inject.service(),
+
+    _resolveLexvoIds: Ember.on('init', Ember.observer('url', function() {
+      this.get('lexvoResolver').getName(this.get('url')).then(function(str) {
+          this.set('resolvedName', str);
+      }.bind(this));
+    })),
+
+    code: Ember.computed('url', function() {
+      var rawLanguage = this.get('url');
+      if(rawLanguage && rawLanguage.startsWith(constants.LEXVO_BASE_URL) ) {
+        return rawLanguage.substr(constants.LEXVO_BASE_URL.length);
+      }
+      return rawLanguage;
+    }),
+    isLanguageLink: Ember.computed.match('url', /^http\:\/\//)
+
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/addon/components/doc-subject.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,31 @@
+import Ember from 'ember';
+import * as constants from 'corpus-common-addon/utils/constants';
+import layout from '../templates/components/doc-subject';
+
+export default Ember.Component.extend({
+    layout: layout,
+    tagName: "span",
+
+    bnfResolver: Ember.inject.service(),
+
+    _resolveBnfIds: Ember.on('init', Ember.observer('url', function() {
+      this.get('bnfResolver').getLabel(this.get('url')).then(function(str) {
+          this.set('resolvedLabel', str);
+      }.bind(this));
+    })),
+
+    code: Ember.computed('url', function() {
+      var rawSubject = this.get('url');
+      if(rawSubject) {
+        if(rawSubject.startsWith(constants.BNF_BASE_URL)) {
+          return rawSubject.substr(constants.BNF_BASE_URL.length);
+        }
+        else if (rawSubject.startsWith(constants.BNF_ARK_BASE_URL)) {
+          return rawSubject.substr(constants.BNF_ARK_BASE_URL.length);
+        }
+      }
+      return rawSubject;
+    }),
+    isSubjectLink: Ember.computed.match('url', /^http\:\/\//)
+
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/addon/helpers/get-link-type.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,20 @@
+import Ember from 'ember';
+import * as constants from 'corpus-common-addon/utils/constants'
+
+export function getLinkType(params/*, hash*/) {
+  let url = params[0];
+
+  if(url.startsWith(constants.LEXVO_BASE_URL)) {
+    return 'doc-language';
+  }
+  if(
+    url.startsWith(constants.BNF_BASE_URL) ||
+    url.startsWith(constants.BNF_ARK_BASE_URL) ||
+    url.startsWith(constants.BNF_ARK_BASE_ID))
+  {
+    return 'doc-subject';
+  }
+  return 'doc-generic';
+}
+
+export default Ember.Helper.helper(getLinkType);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/addon/templates/components/doc-generic.hbs	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,1 @@
+{{url}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/addon/templates/components/doc-language.hbs	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,7 @@
+{{#if isLanguageLink}}
+<a href="{{url}}" target="_blank" title={{resolvedName}} class="bo-doc-ref-link doc-link-lexvo">
+  {{#if resolvedName}}{{resolvedName}}{{else}}{{code}}{{/if}}
+</a>
+{{else}}
+{{#if resolvedName}}{{resolvedName}}{{else}}{{code}}{{/if}}
+{{/if}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/addon/templates/components/doc-subject.hbs	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,7 @@
+{{#if isSubjectLink}}
+<a href="{{url}}" target="_blank" title={{resolvedLabel}} class="bo-doc-ref-link doc-link-bnf">
+  {{#if resolvedLabel}}{{resolvedLabel}}{{else}}{{code}}{{/if}}
+</a>
+{{else}}
+{{#if resolvedLabel}}{{resolvedLabel}}{{else}}{{code}}{{/if}}
+{{/if}}
--- a/common/corpus-common-addon/addon/utils/constants.js	Thu Feb 25 21:26:15 2016 +0100
+++ b/common/corpus-common-addon/addon/utils/constants.js	Sun Feb 28 09:30:23 2016 +0100
@@ -2,4 +2,7 @@
 
 export const LEXVO_BASE_URL = "http://lexvo.org/id/iso639-3/";
 export const VIAF_BASE_URL = "http://viaf.org/viaf/";
+export const BNF_BASE_URL = "http://data.bnf.fr/";
+export const BNF_ARK_BASE_URL = "http://ark.bnf.fr/";
+export const BNF_ARK_BASE_ID = "ark:/12148/";
 export const DEFAULT_STORE_EXP = 3600000;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/app/components/doc-generic.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,1 @@
+export { default } from 'corpus-common-addon/components/doc-generic';
\ No newline at end of file
--- a/common/corpus-common-addon/app/components/doc-language.js	Thu Feb 25 21:26:15 2016 +0100
+++ b/common/corpus-common-addon/app/components/doc-language.js	Sun Feb 28 09:30:23 2016 +0100
@@ -1,24 +1,1 @@
-import Ember from 'ember';
-import * as constants from 'corpus-common-addon/utils/constants'
-
-export default Ember.Component.extend({
-    tagName: "span",
-
-    lexvoResolver: Ember.inject.service(),
-
-    _resolveLexvoIds: Ember.on('init', Ember.observer('language', function() {
-      this.get('lexvoResolver').getName(this.get('language')).then(function(str) {
-          this.set('resolvedName', str);
-      }.bind(this));
-    })),
-
-    code: Ember.computed('language', function() {
-      var rawLanguage = this.get('language');
-      if(rawLanguage && rawLanguage.startsWith(constants.LEXVO_BASE_URL) ) {
-        return rawLanguage.substr(constants.LEXVO_BASE_URL.length);
-      }
-      return rawLanguage;
-    }),
-    isLanguageLink: Ember.computed.match('language', /^http\:\/\//)
-
-});
+export { default } from 'corpus-common-addon/components/doc-language';
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/app/components/doc-subject.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,1 @@
+export { default } from 'corpus-common-addon/components/doc-subject';
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/app/helpers/get-link-type.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,1 @@
+export { default, getLinkType } from 'corpus-common-addon/helpers/get-link-type';
--- a/common/corpus-common-addon/app/services/bnf-resolver.js	Thu Feb 25 21:26:15 2016 +0100
+++ b/common/corpus-common-addon/app/services/bnf-resolver.js	Sun Feb 28 09:30:23 2016 +0100
@@ -7,10 +7,65 @@
     return Ember.getOwner(this).resolveRegistration('config:environment')
   },
   _getStoreKey: function(id) {
-    return 'rameau:'+id;
+    return 'bnf:'+id;
   },
-  getName: function(id) {
-    
+  getLabel: function(id) {
+
+    if(!id) {
+      return new Ember.RSVP.Promise(function(resolve/*, reject*/) {
+        resolve("");
+      });
+    }
+
+    var bnfId = id;
+    if(id.startsWith(constants.BNF_BASE_URL + constants.BNF_ARK_BASE_ID)) {
+      bnfId = id.slice((constants.BNF_BASE_URL + constants.BNF_ARK_BASE_ID).length);
+    }
+    else if (id.startsWith(constants.BNF_ARK_BASE_URL + constants.BNF_ARK_BASE_ID)) {
+      bnfId = id.slice((constants.BNF_ARK_BASE_URL + constants.BNF_ARK_BASE_ID).length);
+    }
+    else if (id.startsWith(constants.BNF_ARK_BASE_ID)) {
+      bnfId = id.slice(constants.BNF_ARK_BASE_ID.length);
+    }
+    var labelPromise = null;
+
+    var storeKey = this._getStoreKey(id);
+    var label = store.get(storeKey);
+
+    if(!label) {
+      //TODO: handle error !!!
+      labelPromise = this.queryLabel(bnfId)
+        .then( function(response) {
+            return store.set(storeKey, response);
+        });
+    }
+    else {
+      labelPromise = new Ember.RSVP.Promise(function(resolve/*, reject*/) {
+        resolve(label);
+      });
+    }
+    return labelPromise;
+
+  },
+
+  // make the query for the name.
+  // return a Promise
+  queryLabel: function(id) {
+    return new Ember.RSVP.Promise(function(resolve, reject) {
+      Ember.$.ajax({
+        //TODO Configuration for the host ?
+        url: this.env().baseURL.replace(/\/$/,"") + "/api/v1/bnf/"+id,
+        success: function(bnfDoc) {
+          var labels = bnfDoc.bnfids;
+          var expectedId = constants.BNF_ARK_BASE_ID + id;
+          resolve((expectedId in labels)?labels[expectedId]:null);
+        },
+        error: function(req, status, error) {
+          reject(status + ":" + error);
+        }
+      });
+    }.bind(this));
   }
 
+
 });
--- a/common/corpus-common-addon/app/services/lexvo-resolver.js	Thu Feb 25 21:26:15 2016 +0100
+++ b/common/corpus-common-addon/app/services/lexvo-resolver.js	Sun Feb 28 09:30:23 2016 +0100
@@ -40,6 +40,7 @@
     }
     return namePromise;
   },
+
   // make the query for the name.
   // return a Promise
   queryName: function(id) {
--- a/common/corpus-common-addon/app/templates/components/doc-language.hbs	Thu Feb 25 21:26:15 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-{{#if isLanguageLink}}
-<a href="{{language}}" target="_blank" title={{resolvedName}} class="bo-doc-ref-link">
-  {{#if resolvedName}}{{resolvedName}}{{else}}{{code}}{{/if}}
-</a>
-{{else}}
-{{#if resolvedName}}{{resolvedName}}{{else}}{{code}}{{/if}}
-{{/if}}
--- a/common/corpus-common-addon/package.json	Thu Feb 25 21:26:15 2016 +0100
+++ b/common/corpus-common-addon/package.json	Sun Feb 28 09:30:23 2016 +0100
@@ -24,7 +24,6 @@
     "ember-cli": "2.3.0",
     "ember-cli-app-version": "^1.0.0",
     "ember-cli-dependency-checker": "^1.2.0",
-    "ember-cli-htmlbars": "^1.0.1",
     "ember-cli-htmlbars-inline-precompile": "^0.3.1",
     "ember-cli-inject-live-reload": "^1.3.1",
     "ember-cli-qunit": "^1.2.1",
@@ -47,7 +46,8 @@
     "ember-addon"
   ],
   "dependencies": {
-    "ember-cli-babel": "^5.1.5"
+    "ember-cli-babel": "^5.1.5",
+    "ember-cli-htmlbars": "^1.0.1"
   },
   "ember-addon": {
     "configPath": "tests/dummy/config"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/tests/integration/components/doc-generic-test.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,24 @@
+import { moduleForComponent, test } from 'ember-qunit';
+import hbs from 'htmlbars-inline-precompile';
+
+moduleForComponent('doc-generic', 'Integration | Component | doc generic', {
+  integration: true
+});
+
+test('it renders', function(assert) {
+  // Set any properties with this.set('myProperty', 'value');
+  // Handle any actions with this.on('myAction', function(val) { ... });"
+
+  this.render(hbs`{{doc-generic}}`);
+
+  assert.equal(this.$().text().trim(), '');
+
+  // Template block usage:"
+  this.render(hbs`
+    {{#doc-generic}}
+      template block text
+    {{/doc-generic}}
+  `);
+
+  assert.equal(this.$().text().trim(), 'template block text');
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/corpus-common-addon/tests/unit/helpers/get-link-type-test.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,10 @@
+import { getLinkType } from 'dummy/helpers/get-link-type';
+import { module, test } from 'qunit';
+
+module('Unit | Helper | get link type');
+
+// Replace this with your real tests.
+test('it works', function(assert) {
+  let result = getLinkType([42]);
+  assert.ok(result);
+});
--- a/server/bo_client/app/templates/doc.hbs	Thu Feb 25 21:26:15 2016 +0100
+++ b/server/bo_client/app/templates/doc.hbs	Sun Feb 28 09:30:23 2016 +0100
@@ -22,7 +22,7 @@
                 </div>
                 <div class="col-md-11">
                   <div class="content-title">{{t 'bo.document_language'}}</div>
-                  <div class="content-value">{{doc-language language=model.language}}</div>
+                  <div class="content-value">{{doc-language url=model.language}}</div>
                 </div>
               </div>
               <div class="row">
@@ -43,7 +43,7 @@
                 </div>
                 <div class="col-md-11">
                   <div class="content-title">{{t 'bo.document_subjects'}}</div>
-                  <div class="content-value">{{#each model.subjects as |subject index|}}{{if index ", "}}{{subject}}{{/each}}</div>
+                  <div class="content-value">{{#each model.subjects as |subject index|}}{{if index ", "}}{{component (get-link-type subject) url=subject}}{{/each}}</div>
                 </div>
               </div>
           </div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/server/fixtures/bnf.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,6 @@
+module.exports = {
+  "ark:/12148/cb11965628b": "frères et soeurs",
+  "ark:/12148/cb11946662b": "parents et enfants",
+  "ark:/12148/cb119766112": "miséricorde",
+  "ark:/12148/cb11970755h": "repentir"
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/server/fixtures/lexvo.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,5 @@
+module.exports = {
+  "fra": "français",
+  "gsw": "alémanique",
+  "oci": "occitan"
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/server/fixtures/viaf.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,8 @@
+module.exports = {
+  "93752300": "Sonia Branca-Rosoff",
+  "9122216": "Dominique Huck",
+  "51700729": "Patrick Sauzet",
+  "56666014": "Guylaine Brun-Trigaud",
+  "61542329": "Arlette Bothorel",
+  "91792187": "Xavier Ravier"
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/server/mocks/bnf.js	Sun Feb 28 09:30:23 2016 +0100
@@ -0,0 +1,22 @@
+/*jshint node:true*/
+module.exports = function(app) {
+  var express = require('express');
+  var _ = require('lodash');
+
+  var v1BnfRouter = express.Router();
+
+  var bnfMappings = require('../fixtures/bnf');
+
+  v1BnfRouter.get('/:id', function(req, res) {
+    var idList = req.params.id.split(',');
+    res.send({
+      'bnfids': _.reduce(idList, function(r, id) {
+        bnfid = "ark:/12148/" + id;
+        r[bnfid] = (bnfid in bnfMappings)?bnfMappings[bnfid]:null;
+        return r;
+      }, {}),
+    });
+  });
+
+  app.use('/api/v1/bnf', v1BnfRouter);
+};
--- a/server/bo_client/server/mocks/lexvo.js	Thu Feb 25 21:26:15 2016 +0100
+++ b/server/bo_client/server/mocks/lexvo.js	Sun Feb 28 09:30:23 2016 +0100
@@ -5,17 +5,10 @@
 
   var v1LexvoRouter = express.Router();
 
-  var lexvoMappings = {
-    "fra": "français",
-    "gsw": "alémanique",
-    "oci": "occitan"
-  };
+  var lexvoMappings = require('../fixtures/lexvo');
 
   v1LexvoRouter.get('/:id', function(req, res) {
     var idList = req.params.id.split(',');
-    var resMap = _.reduce(idList, function(r, id) {
-      r[id] = (id in lexvoMappings)?lexvoMappings[id]:null;
-    }, {});
     res.send({
       'lexvoids': _.reduce(idList, function(r, id) {
         r[id] = (id in lexvoMappings)?lexvoMappings[id]:null;
--- a/server/bo_client/server/mocks/viaf.js	Thu Feb 25 21:26:15 2016 +0100
+++ b/server/bo_client/server/mocks/viaf.js	Sun Feb 28 09:30:23 2016 +0100
@@ -5,20 +5,10 @@
 
   var v1ViafRouter = express.Router();
 
-  var viafMappings = {
-    "93752300": "Sonia Branca-Rosoff",
-    "9122216": "Dominique Huck",
-    "51700729": "Patrick Sauzet",
-    "56666014": "Guylaine Brun-Trigaud",
-    "61542329": "Arlette Bothorel",
-    "91792187": "Xavier Ravier"
-  };
+  var viafMappings = require('../fixtures/viaf');
 
   v1ViafRouter.get('/:id', function(req, res) {
     var idList = req.params.id.split(',');
-    var resMap = _.reduce(idList, function(r, id) {
-      r[id] = (id in viafMappings)?viafMappings[id]:null;
-    }, {});
     res.send({
       'viafids': _.reduce(idList, function(r, id) {
         r[id] = (id in viafMappings)?viafMappings[id]:null;