From f398cb51dd646b0db4e37e4be2f20634a09649cb Mon Sep 17 00:00:00 2001 From: TDLaouer Date: Wed, 9 Jul 2025 13:10:21 +0200 Subject: [PATCH] don't send all images to front --- package-lock.json | 23 +++++++++++++++++++++++ package.json | 2 ++ src/decorators/mongoose/collectionGet.ts | 7 ++----- src/decorators/mongoose/getAll.ts | 7 ++----- 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3983586..3b7331b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@types/express": "^5.0.3", "@types/multer": "^2.0.0", "@types/node": "^24.0.3", + "@types/shuffle-seed": "^1.1.3", "dotenv": "^16.5.0", "express": "^5.1.0", "joi": "^17.13.3", @@ -20,6 +21,7 @@ "multer": "^2.0.1", "npm": "^11.4.2", "reflect-metadata": "^0.2.2", + "shuffle-seed": "^1.1.6", "ts-node": "^10.9.2", "uuid": "^11.1.0" }, @@ -476,6 +478,12 @@ "@types/send": "*" } }, + "node_modules/@types/shuffle-seed": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/shuffle-seed/-/shuffle-seed-1.1.3.tgz", + "integrity": "sha512-D05NnrEz9YvwCp8GSzyI/UipvOtmiMbEtLgupa5buU6QJkmelKb7Pwuslsb8C7c+Wkn3qiAAL329+/E2PfUd0A==", + "license": "MIT" + }, "node_modules/@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", @@ -4898,6 +4906,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, + "node_modules/seedrandom": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz", + "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==", + "license": "MIT" + }, "node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -4977,6 +4991,15 @@ "node": ">=8" } }, + "node_modules/shuffle-seed": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/shuffle-seed/-/shuffle-seed-1.1.6.tgz", + "integrity": "sha512-Vr9wlwMKJVUeFNGyc4aNbrzkI568gkve7ykyJ+1/cz78j3yRlJODWU0CuJ/fmk3MCjvAClpnqlycd/Y53UG3UA==", + "license": "MIT", + "dependencies": { + "seedrandom": "^2.4.2" + } + }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", diff --git a/package.json b/package.json index f811317..b125e18 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@types/express": "^5.0.3", "@types/multer": "^2.0.0", "@types/node": "^24.0.3", + "@types/shuffle-seed": "^1.1.3", "dotenv": "^16.5.0", "express": "^5.1.0", "joi": "^17.13.3", @@ -25,6 +26,7 @@ "multer": "^2.0.1", "npm": "^11.4.2", "reflect-metadata": "^0.2.2", + "shuffle-seed": "^1.1.6", "ts-node": "^10.9.2", "uuid": "^11.1.0" }, diff --git a/src/decorators/mongoose/collectionGet.ts b/src/decorators/mongoose/collectionGet.ts index d005eb6..f0913aa 100644 --- a/src/decorators/mongoose/collectionGet.ts +++ b/src/decorators/mongoose/collectionGet.ts @@ -1,5 +1,6 @@ import { Request, Response, NextFunction } from 'express'; import { Model } from 'mongoose'; +import shuffleSeed from 'shuffle-seed'; export function MongoCollectionGet(model: Model) { return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) { @@ -12,14 +13,10 @@ export function MongoCollectionGet(model: Model) { const result = []; for (const document of documents) { const obj = document.toObject(); - if (document.image && document.image.data && document.image.contentType) { - const base64 = document.image.data.toString('base64'); - obj.imageSrc = `data:${document.image.contentType};base64,${base64}`; - } delete obj.image; result.push(obj); } - req.mongoCollectionGet = result; + req.mongoCollectionGet = shuffleSeed.shuffle(result, 'smash'); } catch (error) { logging.error(error); return res.status(400).json(error); diff --git a/src/decorators/mongoose/getAll.ts b/src/decorators/mongoose/getAll.ts index 1b1b038..1cb28db 100644 --- a/src/decorators/mongoose/getAll.ts +++ b/src/decorators/mongoose/getAll.ts @@ -1,5 +1,6 @@ import { Request, Response, NextFunction } from 'express'; import { Model } from 'mongoose'; +import shuffleSeed from 'shuffle-seed'; export function MongoGetAll(model: Model) { return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) { @@ -11,14 +12,10 @@ export function MongoGetAll(model: Model) { const result = []; for (const document of documents) { const obj = document.toObject(); - if (document.image && document.image.data && document.image.contentType) { - const base64 = document.image.data.toString('base64'); - obj.imageSrc = `data:${document.image.contentType};base64,${base64}`; - } delete obj.image; result.push(obj); } - req.mongoGetAll = result; + req.mongoGetAll = shuffleSeed.shuffle(result, 'smash'); } catch (error) { logging.error(error); return res.status(400).json(error);