import dedent from 'dedent'; import moment from 'moment-timezone'; import { Observable } from 'rx'; import debugFactory from 'debug'; import { frontEndChallengeId, dataVisChallengeId, backEndChallengeId } from '../utils/constantStrings.json'; import certTypes from '../utils/certTypes.json'; import { ifNoUser401, ifNoUserRedirectTo } from '../utils/middleware'; import { observeQuery } from '../utils/rx'; import { prepUniqueDays, calcCurrentStreak, calcLongestStreak } from '../utils/user-stats'; const debug = debugFactory('fcc:boot:user'); const sendNonUserToMap = ifNoUserRedirectTo('/map'); const certIds = { [certTypes.frontEnd]: frontEndChallengeId, [certTypes.dataVis]: dataVisChallengeId, [certTypes.backEnd]: backEndChallengeId }; const certViews = { [certTypes.frontEnd]: 'certificate/front-end.jade', [certTypes.dataVis]: 'certificate/data-vis.jade', [certTypes.backEnd]: 'certificate/back-end.jade', [certTypes.fullStack]: 'certificate/full-stack.jade' }; const certText = { [certTypes.fronEnd]: 'Front End certified', [certTypes.dataVis]: 'Data Vis Certified', [certTypes.backEnd]: 'Back End Certified', [certTypes.fullStack]: 'Full Stack Certified' }; const dateFormat = 'MMM DD, YYYY'; function replaceScriptTags(value) { return value .replace(/