diff --git a/package.json b/package.json index 4461499..511d868 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "reflect-metadata": "^0.1.13", "rxjs": "^7.8.1", "slate-irc": "^0.9.3", + "uuid": "^10.0.0", "xml": "^1.0.1" }, "devDependencies": { @@ -64,6 +65,7 @@ "@types/ramda": "^0.29.3", "@types/slate-irc": "^0.0.29", "@types/supertest": "^2.0.12", + "@types/uuid": "^10.0.0", "@types/xml": "^1.0.9", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", diff --git a/src/junk-drawer/junk-drawer.controller.ts b/src/junk-drawer/junk-drawer.controller.ts index a0fd05a..336664c 100644 --- a/src/junk-drawer/junk-drawer.controller.ts +++ b/src/junk-drawer/junk-drawer.controller.ts @@ -74,8 +74,12 @@ export class JunkDrawerController { async handleFileUpload( @UploadedFiles() files: Express.Multer.File[], @Body('description') description: string, + @Body('private-ish') privateIsh: boolean, ): Promise { - const uniqueSlug = generateUniqueSlug(); + console.log(privateIsh); + const uniqueSlug = generateUniqueSlug({ + random: privateIsh, + }); const metadata: JunkDrawerMetadata = { slug: uniqueSlug, version: '1.0.0', diff --git a/src/utils/slug.ts b/src/utils/slug.ts index 5e4d3c1..bc5663a 100644 --- a/src/utils/slug.ts +++ b/src/utils/slug.ts @@ -1,3 +1,5 @@ +import { v4 } from 'uuid'; + interface SlugOptions { year: boolean; month: boolean; @@ -36,7 +38,7 @@ export const generateUniqueSlug = ( hour ? String(date.getHours()).padStart(2, '0') : '', minute ? String(date.getMinutes()).padStart(2, '0') : '', second ? String(date.getSeconds()).padStart(2, '0') : '', - random ? Math.random().toString(36).substring(2, 15) : '', + random ? '-' + v4() : '', ].filter(Boolean); return parts.join(separator); diff --git a/views/junk-drawer/upload.hbs b/views/junk-drawer/upload.hbs index 51b962e..9ac7d36 100644 --- a/views/junk-drawer/upload.hbs +++ b/views/junk-drawer/upload.hbs @@ -3,6 +3,10 @@ +
+ + +