mirror of
https://github.com/hknsh/project-knedita.git
synced 2024-11-28 17:41:15 +00:00
chore: added todos
This commit is contained in:
parent
2eaa2294da
commit
c82f605d6e
5 changed files with 43 additions and 1 deletions
|
@ -1,4 +1,5 @@
|
||||||
// Thanks sandeepsuvit @ https://github.com/nestjs/swagger/issues/417
|
// Thanks sandeepsuvit @ https://github.com/nestjs/swagger/issues/417
|
||||||
|
// TODO: Remove this decorator.
|
||||||
|
|
||||||
import { ApiBody } from "@nestjs/swagger";
|
import { ApiBody } from "@nestjs/swagger";
|
||||||
|
|
||||||
|
|
34
src/main.ts
34
src/main.ts
|
@ -8,6 +8,40 @@ import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger";
|
||||||
import { patchNestJsSwagger } from "nestjs-zod";
|
import { patchNestJsSwagger } from "nestjs-zod";
|
||||||
import { AppModule } from "./app.module";
|
import { AppModule } from "./app.module";
|
||||||
|
|
||||||
|
/*
|
||||||
|
--- Present ---
|
||||||
|
|
||||||
|
TODO: Remove the eval on buffer type validator. <--- TOP PRIORITY. THIS IS DANGEROUS. <-- Downgrade to 16.5.4 is the solution.
|
||||||
|
TODO: Find a way to get the static url of the uploaded file.
|
||||||
|
TODO: Remove single file upload function.
|
||||||
|
TODO: Remove `create-kweek` decorator.
|
||||||
|
TODO: Finish some routes.
|
||||||
|
-> Kweek/Comments routes needs to be finished.
|
||||||
|
-> Delete User service needs more protection.
|
||||||
|
TODO: Create tests. <- Check NestJS documentation for that.
|
||||||
|
TODO: Add `user` type to @nestjs/common ---> Request.
|
||||||
|
TODO: Remove some useless information on `README`.
|
||||||
|
TODO: Check if the Dockerfile is still working.
|
||||||
|
TODO: Replace Prisma to Kysely or something more low-level.
|
||||||
|
TODO: Replace Zod to Typebox.
|
||||||
|
|
||||||
|
--- Future ---
|
||||||
|
|
||||||
|
TODO: Kubernetes.
|
||||||
|
TODO: Send e-mails to the user when something happens to his account.
|
||||||
|
TODO: Add a authorization system.
|
||||||
|
TODO: Create a administrator dashboard showing statistics of the platform. <- Needs front-end first I guess...
|
||||||
|
-> Only users with moderation/administration permission will be able to access it.
|
||||||
|
-> Users with moderation role can't access the statistics.
|
||||||
|
-> They will need the permission of an administrator to delete kweeks and users.
|
||||||
|
-> These users will be able to delete kweeks and terminate accounts with a obligatory reason.
|
||||||
|
-> This reason will be send to the person by e-mail and he can contest this decision.
|
||||||
|
TODO: Create a TOS.
|
||||||
|
TODO: Create the chat system.
|
||||||
|
-> Initialize the websocket system first.
|
||||||
|
TODO: Check compatibility with Bun.
|
||||||
|
*/
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
const app = await NestFactory.create<NestFastifyApplication>(
|
const app = await NestFactory.create<NestFastifyApplication>(
|
||||||
AppModule,
|
AppModule,
|
||||||
|
|
|
@ -8,6 +8,12 @@ import sharp from "sharp";
|
||||||
export class S3Service {
|
export class S3Service {
|
||||||
constructor(@InjectS3() private readonly s3: S3) {}
|
constructor(@InjectS3() private readonly s3: S3) {}
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO: Remove single image upload since we can use the multiple one.
|
||||||
|
TODO: Find a way to automatically get the image complete URL.
|
||||||
|
-> iirc, S3 api has a function for that.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the image url if the upload to minio was successful.
|
* Returns the image url if the upload to minio was successful.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -214,6 +214,7 @@ export class UserService {
|
||||||
|
|
||||||
async delete(id: string) {
|
async delete(id: string) {
|
||||||
// TODO: Add validation for safety (like e-mail confirmation or password)
|
// TODO: Add validation for safety (like e-mail confirmation or password)
|
||||||
|
// TODO: Delete the user's attachments when deleting, like Kweeks attachments and profile pictures.
|
||||||
try {
|
try {
|
||||||
await this.prisma.user.deleteMany({ where: { id } });
|
await this.prisma.user.deleteMany({ where: { id } });
|
||||||
return { message: "User deleted" };
|
return { message: "User deleted" };
|
||||||
|
|
|
@ -9,7 +9,7 @@ export class BufferValidator implements PipeTransform {
|
||||||
async transform(value: File) {
|
async transform(value: File) {
|
||||||
const { fileTypeFromBuffer } = await (eval(
|
const { fileTypeFromBuffer } = await (eval(
|
||||||
'import("file-type")',
|
'import("file-type")',
|
||||||
) as Promise<typeof import("file-type")>);
|
) as Promise<typeof import("file-type")>); // TODO: Find a way to remove this eval. This is very dangerous. TOP PRIORITY. <-- Downgrade to 16.5.4 should work.
|
||||||
|
|
||||||
const ALLOWED_MIMES = ["image/jpeg", "image/png", "image/webp"];
|
const ALLOWED_MIMES = ["image/jpeg", "image/png", "image/webp"];
|
||||||
const buffer_type = await fileTypeFromBuffer(value.buffer);
|
const buffer_type = await fileTypeFromBuffer(value.buffer);
|
||||||
|
|
Loading…
Reference in a new issue