From 50e53b566752316641f28b8c349dd11cf9b4fd21 Mon Sep 17 00:00:00 2001 From: wancat Date: Sat, 14 Oct 2023 17:43:12 +0800 Subject: [PATCH] feat: add error commands page --- .../analytics/src/controllers/commands.js | 9 +++++++ packages/analytics/src/models/commands.js | 26 +++++++++++++++++++ packages/analytics/src/router.js | 2 ++ packages/analytics/views/commands.handlebars | 22 ++++++++++++++++ packages/analytics/views/home.handlebars | 1 - .../analytics/views/layouts/main.handlebars | 1 + 6 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 packages/analytics/src/controllers/commands.js create mode 100644 packages/analytics/src/models/commands.js create mode 100644 packages/analytics/views/commands.handlebars diff --git a/packages/analytics/src/controllers/commands.js b/packages/analytics/src/controllers/commands.js new file mode 100644 index 0000000..4692652 --- /dev/null +++ b/packages/analytics/src/controllers/commands.js @@ -0,0 +1,9 @@ +import { errorCommands } from '../models/commands.js' + +// eslint-disable-next-line import/prefer-default-export +export async function commandListController(req, res) { + const payload = { + errorCommands: await errorCommands(), + } + res.render('commands', payload) +} diff --git a/packages/analytics/src/models/commands.js b/packages/analytics/src/models/commands.js new file mode 100644 index 0000000..2ea16de --- /dev/null +++ b/packages/analytics/src/models/commands.js @@ -0,0 +1,26 @@ +import { Command } from '@linux-odyssey/models' + +// eslint-disable-next-line import/prefer-default-export +export async function errorCommands() { + const commands = await Command.find({ error: { $ne: '' } }) + .populate({ + path: 'session', + populate: [ + { + path: 'user', + }, + { path: 'quest' }, + ], + }) + .exec() + return commands.map(({ command, error, createdAt, session }) => { + const { user, quest } = session + return { + command, + error, + createdAt: createdAt.toLocaleString(), + user: user.username, + quest: quest.id, + } + }) +} diff --git a/packages/analytics/src/router.js b/packages/analytics/src/router.js index 6e3b0ae..b6c9b98 100644 --- a/packages/analytics/src/router.js +++ b/packages/analytics/src/router.js @@ -2,10 +2,12 @@ import { Router } from 'express' import { homeController } from './controllers/index.js' import { userListController } from './controllers/users.js' +import { commandListController } from './controllers/commands.js' const router = Router() router.get('/', homeController) router.get('/users', userListController) +router.get('/commands', commandListController) export default router diff --git a/packages/analytics/views/commands.handlebars b/packages/analytics/views/commands.handlebars new file mode 100644 index 0000000..ed7078f --- /dev/null +++ b/packages/analytics/views/commands.handlebars @@ -0,0 +1,22 @@ +

Commands

+
+

Error commands

+ + + + + + + + + {{#each errorCommands}} + + + + + + + + {{/each}} +
CommandUserQuestErrorCreated At
{{command}}{{user}}{{quest}}{{error}}{{createdAt}}
+
\ No newline at end of file diff --git a/packages/analytics/views/home.handlebars b/packages/analytics/views/home.handlebars index 5d8ce3e..cd8148a 100644 --- a/packages/analytics/views/home.handlebars +++ b/packages/analytics/views/home.handlebars @@ -1,5 +1,4 @@

Welcome to {{title}}

-

This is the content of the homepage.

Users

diff --git a/packages/analytics/views/layouts/main.handlebars b/packages/analytics/views/layouts/main.handlebars index 09e1d4a..feb46cd 100644 --- a/packages/analytics/views/layouts/main.handlebars +++ b/packages/analytics/views/layouts/main.handlebars @@ -8,6 +8,7 @@ {{{body}}}