3 var collections = require('gitter-web-utils/lib/collections');
4 var TroupeStrategy = require('./troupe-strategy');
5 var leanTroupeDao = require('../../services/daos/troupe-dao').full;
6 var Lazy = require('lazy.js');
8 function TroupeUriStrategy(options) {
9 var troupeStrategy = new TroupeStrategy(options);
12 this.preload = function(uris) {
13 return leanTroupeDao.findByUris(uris.toArray()).then(function(troupes) {
14 troupesIndexed = collections.indexByProperty(troupes, 'uri');
16 return troupeStrategy.preload(Lazy(troupes));
20 this.map = function(uri) {
21 var troupe = troupesIndexed[uri];
22 if (!troupe) return null;
23 return troupeStrategy.map(troupe);
26 TroupeUriStrategy.prototype = {
27 name: 'TroupeUriStrategy'
30 module.exports = TroupeUriStrategy;