51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
import Chart from "../core.js";
|
|
import { name, schema } from "./entities/active-users.js";
|
|
const week = 1000 * 60 * 60 * 24 * 7;
|
|
const month = 1000 * 60 * 60 * 24 * 30;
|
|
const year = 1000 * 60 * 60 * 24 * 365;
|
|
/**
|
|
* アクティブユーザーに関するチャート
|
|
*/ export default class ActiveUsersChart extends Chart {
|
|
constructor(){
|
|
super(name, schema);
|
|
}
|
|
async tickMajor() {
|
|
return {};
|
|
}
|
|
async tickMinor() {
|
|
return {};
|
|
}
|
|
read(user) {
|
|
this.commit({
|
|
read: [
|
|
user.id
|
|
],
|
|
registeredWithinWeek: Date.now() - user.createdAt.getTime() < week ? [
|
|
user.id
|
|
] : [],
|
|
registeredWithinMonth: Date.now() - user.createdAt.getTime() < month ? [
|
|
user.id
|
|
] : [],
|
|
registeredWithinYear: Date.now() - user.createdAt.getTime() < year ? [
|
|
user.id
|
|
] : [],
|
|
registeredOutsideWeek: Date.now() - user.createdAt.getTime() > week ? [
|
|
user.id
|
|
] : [],
|
|
registeredOutsideMonth: Date.now() - user.createdAt.getTime() > month ? [
|
|
user.id
|
|
] : [],
|
|
registeredOutsideYear: Date.now() - user.createdAt.getTime() > year ? [
|
|
user.id
|
|
] : []
|
|
});
|
|
}
|
|
async write(user) {
|
|
await this.commit({
|
|
write: [
|
|
user.id
|
|
]
|
|
});
|
|
}
|
|
}
|