refactor: organize imports and enhance formatting across backend files
Some checks failed
Backend Tests / test (push) Successful in 9m38s
Lint / lint (push) Failing after 4m59s

Optimized import order, applied consistent formatting, and improved readability in various modules, including `contents`, `media`, and `auth` services.
This commit is contained in:
Mathis HERRIOT
2026-01-08 15:33:55 +01:00
parent 6254c136d1
commit cc2823db7d
8 changed files with 39 additions and 25 deletions

View File

@@ -3,12 +3,12 @@
"version": "0.0.1",
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"files": [
"dist"
],
"scripts": {
"private": true,
"license": "UNLICENSED",
"files": [
"dist"
],
"scripts": {
"build": "nest build",
"lint": "biome check",
"lint:write": "biome check --write",

View File

@@ -1,9 +1,9 @@
import { Module } from "@nestjs/common";
import { CacheModule } from "@nestjs/cache-manager";
import { Module } from "@nestjs/common";
import { ConfigModule, ConfigService } from "@nestjs/config";
import { redisStore } from "cache-manager-redis-yet";
import { ScheduleModule } from "@nestjs/schedule";
import { ThrottlerModule } from "@nestjs/throttler";
import { redisStore } from "cache-manager-redis-yet";
import { ApiKeysModule } from "./api-keys/api-keys.module";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";

View File

@@ -4,7 +4,6 @@ import type { Request, Response } from "express";
import { getIronSession } from "iron-session";
import { AuthService } from "./auth.service";
import { LoginDto } from "./dto/login.dto";
import { RefreshDto } from "./dto/refresh.dto";
import { RegisterDto } from "./dto/register.dto";
import { Verify2faDto } from "./dto/verify-2fa.dto";
import { getSessionOptions, SessionData } from "./session.config";

View File

@@ -33,7 +33,7 @@ export const envSchema = z.object({
MAIL_FROM: z.string().email(),
DOMAIN_NAME: z.string(),
// Sentry
SENTRY_DSN: z.string().optional(),

View File

@@ -1,3 +1,4 @@
import { CacheInterceptor, CacheTTL } from "@nestjs/cache-manager";
import {
Body,
Controller,
@@ -5,6 +6,7 @@ import {
Delete,
Get,
Header,
NotFoundException,
Param,
ParseBoolPipe,
ParseIntPipe,
@@ -15,9 +17,7 @@ import {
UploadedFile,
UseGuards,
UseInterceptors,
NotFoundException,
} from "@nestjs/common";
import { CacheInterceptor, CacheTTL } from "@nestjs/cache-manager";
import { FileInterceptor } from "@nestjs/platform-express";
import type { Request, Response } from "express";
import { AuthGuard } from "../auth/guards/auth.guard";
@@ -130,9 +130,10 @@ export class ContentsController {
}
const userAgent = req.headers["user-agent"] || "";
const isBot = /bot|googlebot|crawler|spider|robot|crawling|facebookexternalhit|twitterbot/i.test(
userAgent,
);
const isBot =
/bot|googlebot|crawler|spider|robot|crawling|facebookexternalhit|twitterbot/i.test(
userAgent,
);
if (isBot) {
const imageUrl = this.contentsService.getFileUrl(content.storageKey);

View File

@@ -20,8 +20,8 @@ import {
tags,
users,
} from "../database/schemas";
import { MediaService } from "../media/media.service";
import type { MediaProcessingResult } from "../media/interfaces/media.interface";
import { MediaService } from "../media/media.service";
import { S3Service } from "../s3/s3.service";
import { CreateContentDto } from "./dto/create-content.dto";
@@ -43,7 +43,12 @@ export class ContentsService {
async uploadAndProcess(
userId: string,
file: Express.Multer.File,
data: { title: string; type: "meme" | "gif"; categoryId?: string; tags?: string[] },
data: {
title: string;
type: "meme" | "gif";
categoryId?: string;
tags?: string[];
},
) {
// 0. Validation du format et de la taille
const allowedMimeTypes = [
@@ -304,7 +309,8 @@ export class ContentsService {
getFileUrl(storageKey: string): string {
const endpoint = this.configService.get("S3_ENDPOINT");
const port = this.configService.get("S3_PORT");
const protocol = this.configService.get("S3_USE_SSL") === true ? "https" : "http";
const protocol =
this.configService.get("S3_USE_SSL") === true ? "https" : "http";
const bucket = this.configService.get("S3_BUCKET_NAME");
if (endpoint === "localhost" || endpoint === "127.0.0.1") {

View File

@@ -1,4 +1,10 @@
import { IsEnum, IsNotEmpty, IsOptional, IsString, IsUUID } from "class-validator";
import {
IsEnum,
IsNotEmpty,
IsOptional,
IsString,
IsUUID,
} from "class-validator";
import { ContentType } from "./create-content.dto";
export class UploadContentDto {

View File

@@ -1,3 +1,7 @@
import { readFile, unlink, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { Readable } from "node:stream";
import {
BadRequestException,
Injectable,
@@ -7,10 +11,6 @@ import {
import { ConfigService } from "@nestjs/config";
import * as NodeClam from "clamscan";
import ffmpeg from "fluent-ffmpeg";
import { readFile, unlink, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { Readable } from "node:stream";
import sharp from "sharp";
import { v4 as uuidv4 } from "uuid";
import type {
@@ -19,7 +19,9 @@ import type {
} from "./interfaces/media.interface";
interface ClamScanner {
scanStream(stream: Readable): Promise<{ isInfected: boolean; viruses: string[] }>;
scanStream(
stream: Readable,
): Promise<{ isInfected: boolean; viruses: string[] }>;
}
@Injectable()
@@ -34,7 +36,7 @@ export class MediaService {
private async initClamScan() {
try {
// @ts-ignore
// @ts-expect-error
const scanner = await new NodeClam().init({
clamdscan: {
host: this.configService.get<string>("CLAMAV_HOST", "localhost"),