From dd978dcfa04f37d95393fb131767cc0f3d0a079d Mon Sep 17 00:00:00 2001 From: Greg Fodor <gfodor@gmail.com> Date: Mon, 9 Apr 2018 15:59:55 -0700 Subject: [PATCH] Add entry timing flags for collecting DAU/MAU --- package.json | 1 + src/utils/hub-channel.js | 15 +++++++++++++-- yarn.lock | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index cd5ab60a8..1ff85b5cf 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "minijanus": "^0.5.0", "mobile-detect": "^1.4.1", "moment": "^2.22.0", + "moment-timezone": "^0.5.14", "moving-average": "^1.0.0", "naf-janus-adapter": "https://github.com/mozilla/naf-janus-adapter#feature/disconnect", "networked-aframe": "https://github.com/mozillareality/networked-aframe#mr-social-client/master", diff --git a/src/utils/hub-channel.js b/src/utils/hub-channel.js index f040e58b1..095decc54 100644 --- a/src/utils/hub-channel.js +++ b/src/utils/hub-channel.js @@ -1,4 +1,4 @@ -import moment from "moment"; +import moment from "moment-timezone"; export default class HubChannel { constructor(store) { @@ -46,15 +46,26 @@ export default class HubChannel { }; getEntryTimingFlags = () => { - const entryTimingFlags = { isNewDaily: true, isNewMonthly: true, isNewDayHourWindow: true, isNewMonthWindow: true }; + const entryTimingFlags = { isNewDaily: true, isNewMonthly: true, isNewDayWindow: true, isNewMonthWindow: true }; if (!this.store.state.lastEnteredAt) { return entryTimingFlags; } const lastEntered = moment(this.store.state.lastEnteredAt); + const lastEnteredPst = moment(lastEntered).tz("America/Los_Angeles"); + const nowPst = moment().tz("America/Los_Angeles"); const dayWindowAgo = moment().subtract(1, "day"); const monthWindowAgo = moment().subtract(1, "month"); + + entryTimingFlags.isNewDaily = + lastEnteredPst.dayOfYear() !== nowPst.dayOfYear() || lastEnteredPst.year() !== nowPst.year(); + entryTimingFlags.isNewMonthly = + lastEnteredPst.month() !== nowPst.month() || lastEnteredPst.year() !== nowPst.year(); + entryTimingFlags.isNewDayWindow = lastEntered.isBefore(dayWindowAgo); + entryTimingFlags.isNewMonthWindow = lastEntered.isBefore(monthWindowAgo); + + return entryTimingFlags; }; disconnect = () => { diff --git a/yarn.lock b/yarn.lock index 90da68e25..3e07d2484 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5148,7 +5148,13 @@ module-deps@^6.0.0: through2 "^2.0.0" xtend "^4.0.0" -moment@^2.22.0: +moment-timezone@^0.5.14: + version "0.5.14" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.14.tgz#4eb38ff9538b80108ba467a458f3ed4268ccfcb1" + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@^2.22.0: version "2.22.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.0.tgz#7921ade01017dd45186e7fee5f424f0b8663a730" -- GitLab