Skip to content

Commit

Permalink
fix: response & resolution time stats
Browse files Browse the repository at this point in the history
  • Loading branch information
eartharoid committed Feb 10, 2023
1 parent a953308 commit ced14ce
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 8 deletions.
14 changes: 11 additions & 3 deletions src/lib/tickets/manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -406,9 +406,17 @@ module.exports = class TicketManager {
const statsCacheKey = `cache/category-stats/${categoryId}`;
let stats = await this.client.keyv.get(statsCacheKey);
if (!stats) {
const { tickets } = await this.client.prisma.category.findUnique({
select: { tickets: { where: { open: false } } },
where: { id: categoryId },
const tickets = await this.client.prisma.ticket.findMany({
select: {
closedAt: true,
createdAt: true,
firstResponseAt: true,
},
where: {
categoryId: category.id,
firstResponseAt: { not: null },
open: false,
},
});
stats = {
avgResolutionTime: ms(tickets.reduce((total, ticket) => total + (ticket.closedAt - ticket.createdAt), 0) ?? 1 / tickets.length),
Expand Down
3 changes: 2 additions & 1 deletion src/listeners/client/ready.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ module.exports = class extends Listener {
if (!cached) {
const tickets = await client.prisma.ticket.findMany({
select: {
closedAt: true,
createdAt: true,
firstResponseAt: true,
},
});
const closedTickets = tickets.filter(t => t.closedAt);
const closedTickets = tickets.filter(t => t.firstResponseAt && t.closedAt);
cached = {
avgResolutionTime: ms(closedTickets.reduce((total, ticket) => total + (ticket.closedAt - ticket.createdAt), 0) ?? 1 / closedTickets.length),
avgResponseTime: ms(closedTickets.reduce((total, ticket) => total + (ticket.firstResponseAt - ticket.createdAt), 0) ?? 1 / closedTickets.length),
Expand Down
2 changes: 1 addition & 1 deletion src/routes/api/admin/guilds/[guild]/categories/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports.get = fastify => ({
where: { id: req.params.guild },
});
categories = categories.map(c => {
const closedTickets = c.tickets.filter(t => t.closedAt);
const closedTickets = c.tickets.filter(t => t.firstResponseAt && t.closedAt);
c = {
...c,
stats: {
Expand Down
5 changes: 3 additions & 2 deletions src/routes/api/admin/guilds/[guild]/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@ module.exports.get = fastify => ({
});
const tickets = await client.prisma.ticket.findMany({
select: {
closedAt: true,
createdAt: true,
firstResponseAt: true,
},
where: { guildId: id },
});
const closedTickets = tickets.filter(t => t.closedAt);
const closedTickets = tickets.filter(t => t.firstResponseAt && t.closedAt);
cached = {
createdAt: settings.createdAt,
id: guild.id,
Expand All @@ -46,7 +47,7 @@ module.exports.get = fastify => ({
tickets: tickets.length,
},
};
await client.keyv.set(cacheKey, cached, ms('5m'));
// await client.keyv.set(cacheKey, cached, ms('5m'));
}

return cached;
Expand Down
3 changes: 2 additions & 1 deletion src/routes/api/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ module.exports.get = () => ({
if (!cached) {
const tickets = await client.prisma.ticket.findMany({
select: {
closedAt: true,
createdAt: true,
firstResponseAt: true,
},
});
const closedTickets = tickets.filter(t => t.closedAt);
const closedTickets = tickets.filter(t => t.firstResponseAt && t.closedAt);
const users = await client.prisma.user.findMany({ select: { messageCount: true } });
cached = {
avatar: client.user.avatarURL(),
Expand Down

0 comments on commit ced14ce

Please sign in to comment.