feat: add modular services and repositories for improved code organization

Introduce repository pattern across multiple services, including `favorites`, `tags`, `sessions`, `reports`, `auth`, and more. Decouple crypto functionalities into modular services like `HashingService`, `JwtService`, and `EncryptionService`. Improve testability and maintainability by simplifying dependencies and consolidating utility logic.
This commit is contained in:
Mathis HERRIOT
2026-01-14 12:11:39 +01:00
parent 9c45bf11e4
commit 514bd354bf
64 changed files with 1801 additions and 1295 deletions

View File

@@ -0,0 +1,39 @@
import type { Readable } from "node:stream";
export interface IStorageService {
uploadFile(
fileName: string,
file: Buffer,
mimeType: string,
metaData?: Record<string, string>,
bucketName?: string,
): Promise<string>;
getFile(
fileName: string,
bucketName?: string,
): Promise<Readable>;
getFileUrl(
fileName: string,
expiry?: number,
bucketName?: string,
): Promise<string>;
getUploadUrl(
fileName: string,
expiry?: number,
bucketName?: string,
): Promise<string>;
deleteFile(fileName: string, bucketName?: string): Promise<void>;
getFileInfo(fileName: string, bucketName?: string): Promise<any>;
moveFile(
sourceFileName: string,
destinationFileName: string,
sourceBucketName?: string,
destinationBucketName?: string,
): Promise<string>;
}