Gitter migration: Setup redirects (rollout pt. 3)
[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 });
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;