From 8f569e0bb4421532ff358a014f6d1de2eb6d784d Mon Sep 17 00:00:00 2001 From: Hikari Date: Thu, 19 Feb 2026 18:38:16 -0800 Subject: [PATCH] chore: add missing pieces for profile reporting and fix formatting - Added Reports link to admin dropdown menu - Fixed log route path (changed from '/log' to '/') - Exported report types from shared-types index - Fixed whitespace alignment in auth and game types - Fixed formatting in e2e test files (newlines, comment style) --- api/src/app/routes/log/index.ts | 2 +- apps/frontend-e2e/src/e2e/app.cy.ts | 2 +- apps/frontend-e2e/src/support/app.po.ts | 7 +++- apps/frontend-e2e/src/support/commands.ts | 22 ++++++---- apps/frontend-e2e/src/support/e2e.ts | 2 +- .../app/components/header/header.component.ts | 1 + apps/frontend/src/app/services/index.ts | 3 +- shared-types/src/index.ts | 1 + shared-types/src/lib/auth.types.ts | 42 +++++++++---------- shared-types/src/lib/game.types.ts | 16 +++---- 10 files changed, 56 insertions(+), 42 deletions(-) diff --git a/api/src/app/routes/log/index.ts b/api/src/app/routes/log/index.ts index 9cdfc6f..2c57468 100644 --- a/api/src/app/routes/log/index.ts +++ b/api/src/app/routes/log/index.ts @@ -19,7 +19,7 @@ interface LogBody { } export default async function (fastify: FastifyInstance) { - fastify.post('/log', async function (request: FastifyRequest<{ Body: LogBody }>) { + fastify.post('/', async function (request: FastifyRequest<{ Body: LogBody }>) { const { level, message, context, error } = request.body; if (level === 'error' && error) { diff --git a/apps/frontend-e2e/src/e2e/app.cy.ts b/apps/frontend-e2e/src/e2e/app.cy.ts index 257c02f..7423a9b 100644 --- a/apps/frontend-e2e/src/e2e/app.cy.ts +++ b/apps/frontend-e2e/src/e2e/app.cy.ts @@ -18,4 +18,4 @@ describe("frontend-e2e", () => { // Function helper example, see `../support/app.po.ts` file getGreeting().contains(/Welcome/); }); -}); \ No newline at end of file +}); diff --git a/apps/frontend-e2e/src/support/app.po.ts b/apps/frontend-e2e/src/support/app.po.ts index 91b038c..66ec6f2 100644 --- a/apps/frontend-e2e/src/support/app.po.ts +++ b/apps/frontend-e2e/src/support/app.po.ts @@ -4,4 +4,9 @@ * @license Naomi's Public License */ -export const getGreeting = (): Cypress.Chainable => cy.get("h1"); \ No newline at end of file +/** + * + */ +export const getGreeting = (): Cypress.Chainable => { + return cy.get("h1"); +}; diff --git a/apps/frontend-e2e/src/support/commands.ts b/apps/frontend-e2e/src/support/commands.ts index e233901..ccfbaae 100644 --- a/apps/frontend-e2e/src/support/commands.ts +++ b/apps/frontend-e2e/src/support/commands.ts @@ -13,14 +13,14 @@ * * For more comprehensive examples of custom * commands please read more here: - * https://on.cypress.io/custom-commands + * https://on.cypress.io/custom-commands. */ // eslint-disable-next-line @typescript-eslint/no-namespace -- Required for Cypress type extensions declare namespace Cypress { // eslint-disable-next-line @typescript-eslint/no-unused-vars -- Subject is required for type definition interface Chainable { - login: (email: string, password: string) => void; + login: (email: string, password: string)=> void; } } @@ -30,11 +30,17 @@ Cypress.Commands.add("login", (email, password) => { console.log("Custom command example: Login", email, password); }); -// -- This is a child command -- -// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +/* + * -- This is a child command -- + * Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) + */ -// -- This is a dual command -- -// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +/* + * -- This is a dual command -- + * Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) + */ -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) \ No newline at end of file +/* + * -- This will overwrite an existing command -- + * Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) + */ diff --git a/apps/frontend-e2e/src/support/e2e.ts b/apps/frontend-e2e/src/support/e2e.ts index 618fc37..bb04d5c 100644 --- a/apps/frontend-e2e/src/support/e2e.ts +++ b/apps/frontend-e2e/src/support/e2e.ts @@ -16,7 +16,7 @@ * 'supportFile' configuration option. * * You can read more here: - * https://on.cypress.io/configuration + * https://on.cypress.io/configuration. */ // Import commands.ts using ES2015 syntax: diff --git a/apps/frontend/src/app/components/header/header.component.ts b/apps/frontend/src/app/components/header/header.component.ts index 05931ad..16a7b00 100644 --- a/apps/frontend/src/app/components/header/header.component.ts +++ b/apps/frontend/src/app/components/header/header.component.ts @@ -60,6 +60,7 @@ import { ApiService } from '../../services/api.service'; Users Audit Suggestions + Reports } diff --git a/apps/frontend/src/app/services/index.ts b/apps/frontend/src/app/services/index.ts index 05aa660..de8afdf 100644 --- a/apps/frontend/src/app/services/index.ts +++ b/apps/frontend/src/app/services/index.ts @@ -8,4 +8,5 @@ export { ApiService } from './api.service'; export { AuthService } from './auth.service'; export { BooksService } from './books.service'; export { GamesService } from './games.service'; -export { MusicService } from './music.service'; \ No newline at end of file +export { MusicService } from './music.service'; +export { ReportService } from './report.service'; \ No newline at end of file diff --git a/shared-types/src/index.ts b/shared-types/src/index.ts index 66519bd..69b4d61 100644 --- a/shared-types/src/index.ts +++ b/shared-types/src/index.ts @@ -13,5 +13,6 @@ export * from "./lib/game.types"; export type * from "./lib/like.types"; export * from "./lib/manga.types"; export * from "./lib/music.types"; +export * from "./lib/report.types"; export * from "./lib/show.types"; export * from "./lib/suggestion.types"; diff --git a/shared-types/src/lib/auth.types.ts b/shared-types/src/lib/auth.types.ts index 03e0b66..a80b044 100644 --- a/shared-types/src/lib/auth.types.ts +++ b/shared-types/src/lib/auth.types.ts @@ -5,28 +5,28 @@ */ interface User { - id: string; - email: string; - username: string; - avatar?: string; - slug?: string; - displayName?: string; - bio?: string; - profilePublic: boolean; - website?: string; + id: string; + email: string; + username: string; + avatar?: string; + slug?: string; + displayName?: string; + bio?: string; + profilePublic: boolean; + website?: string; discordServer?: string; - bluesky?: string; - github?: string; - linkedin?: string; - twitch?: string; - youtube?: string; - discordId: string; - isAdmin: boolean; - isBanned: boolean; - inDiscord: boolean; - isVip: boolean; - isMod: boolean; - isStaff: boolean; + bluesky?: string; + github?: string; + linkedin?: string; + twitch?: string; + youtube?: string; + discordId: string; + isAdmin: boolean; + isBanned: boolean; + inDiscord: boolean; + isVip: boolean; + isMod: boolean; + isStaff: boolean; } interface JwtPayload { diff --git a/shared-types/src/lib/game.types.ts b/shared-types/src/lib/game.types.ts index 842f1d5..38949ac 100644 --- a/shared-types/src/lib/game.types.ts +++ b/shared-types/src/lib/game.types.ts @@ -32,16 +32,16 @@ interface Game { } interface CreateGameDto { - title: string; - platform?: string; - status: GameStatus; + title: string; + platform?: string; + status: GameStatus; dateStarted?: Date; dateFinished?: Date; - rating?: number; - notes?: string; - coverImage?: string; - tags?: Array; - links?: Array; + rating?: number; + notes?: string; + coverImage?: string; + tags?: Array; + links?: Array; } interface UpdateGameDto extends Partial {