Gitter migration: Setup redirects (rollout pt. 3)
[gitter.git] / server / handlers / snapshots / explore-snapshot.js
blob89273d9a93d2765eb7bbebd5d40d52feccd8ed26
1 'use strict';
3 var _ = require('lodash');
4 var restSerializer = require('../../serializers/rest-serializer');
5 var generateRoomCardContext = require('gitter-web-shared/templates/partials/room-card-context-generator');
6 var exploreTagUtils = require('../../utils/explore-tag-utils');
8 var defaults = {
9   isLoggedIn: false,
10   fauxTagMap: {},
11   selectedTags: [],
12   rooms: []
15 module.exports = function getSnapshotsForPageContext(options) {
16   var opts = _.extend({}, defaults, options);
18   var tagMap = exploreTagUtils.generateTagMap(opts.fauxTagMap);
19   if (!opts.isLoggedIn) {
20     tagMap[
21       exploreTagUtils.tagConstants.FAUX_KEY_TAG_MAP_KEY_PREFIX + ':suggested'
22     ].needsAuthentication = true;
23   }
24   var selectedTagMap = exploreTagUtils.generateSelectedTagMap(tagMap, opts.selectedTags);
26   var strategy = restSerializer.TroupeStrategy.createSuggestionStrategy();
27   return restSerializer.serialize(opts.rooms, strategy).then(function(rooms) {
28     var resultantRooms = rooms.map(function(roomObj) {
29       return generateRoomCardContext(roomObj);
30     });
32     return {
33       tagMap: selectedTagMap,
34       rooms: resultantRooms
35     };
36   });