0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-24 23:48:13 -05:00

Fixed membersStats service stale-data logic

no issue

- the stale data checks would always return false because the calculation was reversed
  - `old date - new date` will always result in a negative number so it would never be greater than 60000
  - switched to `new date - old date` to get a positive number so the `>` comparison works
  - moved `1 * 60 * 1000` into a constant so it's easier to the intended behaviour at a glance
This commit is contained in:
Kevin Ansfield 2021-03-10 10:06:06 +00:00
parent a8abc3a366
commit 287c98c707

View file

@ -4,6 +4,8 @@ import {inject as service} from '@ember/service';
import {task} from 'ember-concurrency-decorators';
import {tracked} from '@glimmer/tracking';
const ONE_MINUTE = 1 * 60 * 1000;
export default class MembersStatsService extends Service {
@service ajax;
@service ghostPaths;
@ -18,7 +20,7 @@ export default class MembersStatsService extends Service {
fetch() {
let daysChanged = this._lastFetchedDays !== this.days;
let staleData = this._lastFetched && this._lastFetched - new Date() > 1 * 60 * 1000;
let staleData = this._lastFetched && (new Date() - this._lastFetched) > ONE_MINUTE;
// return an already in-progress promise unless params have changed
if (this._fetchTask.isRunning && !this._forceRefresh && !daysChanged) {
@ -34,7 +36,7 @@ export default class MembersStatsService extends Service {
}
fetchTimeline(options = {}) {
let staleData = this._lastFetchedTimeline && this._lastFetchedTimeline - new Date() > 1 * 60 * 1000;
let staleData = this._lastFetchedTimeline && (new Date() - this._lastFetchedTimeline) > ONE_MINUTE;
let differentLimit = this._lastFetchedTimelineLimit && this._lastFetchedTimelineLimit !== options.limit;
if (this._fetchTimelineTask.isRunning) {
@ -49,7 +51,7 @@ export default class MembersStatsService extends Service {
}
fetchCounts() {
let staleData = this._lastFetchedCounts && this._lastFetchedCounts - new Date() > 1 * 60 * 1000;
let staleData = this._lastFetchedCounts && (new Date() - this._lastFetchedCounts) > ONE_MINUTE;
// return an already in-progress promise unless params have changed
if (this._fetchCountsTask.isRunning) {
@ -65,7 +67,7 @@ export default class MembersStatsService extends Service {
}
fetchNewsletterStats() {
let staleData = this._lastFetchedNewsletterStats && this._lastFetchedNewsletterStats - new Date() > 1 * 60 * 1000;
let staleData = this._lastFetchedNewsletterStats && (new Date() - this._lastFetchedNewsletterStats) > ONE_MINUTE;
// return an already in-progress promise unless params have changed
if (this._fetchNewsletterStatsTask.isRunning) {
@ -127,7 +129,7 @@ export default class MembersStatsService extends Service {
}
fetchMRR() {
let staleData = this._lastFetchedMRR && this._lastFetchedMRR - new Date() > 1 * 60 * 1000;
let staleData = this._lastFetchedMRR && (new Date() - this._lastFetchedMRR) > ONE_MINUTE;
// return an already in-progress promise unless params have changed
if (this._fetchMRRTask.isRunning) {