Gitter migration: Setup redirects (rollout pt. 3)
[gitter.git] / server / serializers / rest / troupes / last-access-times-for-user-strategy.js
blobf252a46ed2cf77caa77006105073307301e46fbf
1 'use strict';
3 var recentRoomCore = require('gitter-web-rooms/lib/recent-room-core');
5 function LastTroupeAccessTimesForUserStrategy(options) {
6   this.userId = options.userId || options.currentUserId;
7   this.timesIndexed = null;
10 LastTroupeAccessTimesForUserStrategy.prototype = {
11   preload: function() {
12     return recentRoomCore
13       .getTroupeLastAccessTimesForUserExcludingHidden(this.userId)
14       .bind(this)
15       .then(function(times) {
16         this.timesIndexed = times;
17       });
18   },
20   map: function(id) {
21     var time = this.timesIndexed[id];
22     // No idea why, but sometimes these dates are converted to JSON as {}, hence the weirdness below
23     return {
24       troupeId: id,
25       time: time ? new Date(time.valueOf()).toISOString() : undefined
26     };
27   },
29   name: 'LastTroupeAccessTimesForUserStrategy'
32 module.exports = LastTroupeAccessTimesForUserStrategy;