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
;