New stat retrieval and event store last visited date
This commit is contained in:
parent
f16b158c7f
commit
99989e66aa
|
|
@ -30,6 +30,7 @@ app.use((req, res, next) => {
|
||||||
req.types = {
|
req.types = {
|
||||||
event: process.env.NODE_ENV === 'production' ? 'Event' : 'DevEvent',
|
event: process.env.NODE_ENV === 'production' ? 'Event' : 'DevEvent',
|
||||||
person: process.env.NODE_ENV === 'production' ? 'Person' : 'DevPerson',
|
person: process.env.NODE_ENV === 'production' ? 'Person' : 'DevPerson',
|
||||||
|
stats: process.env.NODE_ENV === 'production' ? 'Stats' : 'DevStats',
|
||||||
};
|
};
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
const dayjs = require('dayjs');
|
||||||
|
|
||||||
module.exports = async (req, res) => {
|
module.exports = async (req, res) => {
|
||||||
const { eventId } = req.params;
|
const { eventId } = req.params;
|
||||||
|
|
||||||
|
|
@ -9,6 +11,10 @@ module.exports = async (req, res) => {
|
||||||
id: eventId,
|
id: eventId,
|
||||||
...event,
|
...event,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Update last visited time
|
||||||
|
event.visited = dayjs().unix();
|
||||||
|
await req.datastore.upsert(event);
|
||||||
} else {
|
} else {
|
||||||
res.sendStatus(404);
|
res.sendStatus(404);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,19 +4,24 @@ module.exports = async (req, res) => {
|
||||||
let eventCount = null;
|
let eventCount = null;
|
||||||
let personCount = null;
|
let personCount = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const eventQuery = req.datastore.createQuery(['__Stat_Kind__']).filter('kind_name', req.types.event);
|
const eventResult = (await req.datastore.get(req.datastore.key([req.types.stats, 'eventCount'])))[0] || null;
|
||||||
const personQuery = req.datastore.createQuery(['__Stat_Kind__']).filter('kind_name', req.types.person);
|
const personResult = (await req.datastore.get(req.datastore.key([req.types.stats, 'personCount'])))[0] || null;
|
||||||
|
|
||||||
|
if (eventResult) {
|
||||||
|
eventCount = eventResult.value;
|
||||||
|
}
|
||||||
|
if (personResult) {
|
||||||
|
personCount = personResult.value;
|
||||||
|
}
|
||||||
|
|
||||||
eventCount = (await req.datastore.runQuery(eventQuery))[0][0].count;
|
|
||||||
personCount = (await req.datastore.runQuery(personQuery))[0][0].count;
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
res.send({
|
res.send({
|
||||||
eventCount: eventCount || null,
|
eventCount,
|
||||||
personCount: personCount || null,
|
personCount,
|
||||||
version: package.version,
|
version: package.version,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue