Merge branch 'hotfix/21.56.9' into master
[gitter.git] / server / serializers / rest / troupe-uri-strategy.js
blobb9b2ce00cc5ab45b90e9d51e42c57265b01950c8
1 'use strict';
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);
10   var troupesIndexed;
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));
17     });
18   };
20   this.map = function(uri) {
21     var troupe = troupesIndexed[uri];
22     if (!troupe) return null;
23     return troupeStrategy.map(troupe);
24   };
26 TroupeUriStrategy.prototype = {
27   name: 'TroupeUriStrategy'
30 module.exports = TroupeUriStrategy;