From dcf8b6423ab89a9da990df42bdb8ee9ae7fafbc9 Mon Sep 17 00:00:00 2001 From: Alireza Hassani Date: Sun, 30 Aug 2026 16:19:45 +0330 Subject: [PATCH] Drop the domain from public AI prompt URLs. Copied links now use business name and prompt name only; old host-prefixed URLs still resolve. Co-authored-by: Cursor --- src/ai-prompts/ai-prompts.controller.ts | 8 ++++---- src/ai-prompts/ai-prompts.service.ts | 4 ---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/ai-prompts/ai-prompts.controller.ts b/src/ai-prompts/ai-prompts.controller.ts index 08690d8..9ca5b9f 100644 --- a/src/ai-prompts/ai-prompts.controller.ts +++ b/src/ai-prompts/ai-prompts.controller.ts @@ -101,19 +101,19 @@ export class AiPromptsController { @Get('public/ai-prompts/:host/:name/:prompt/:publicId') @Header('Content-Type', 'text/plain; charset=utf-8') - getPublicFull(@Param('publicId') publicId: string) { + getPublicLegacyHost(@Param('publicId') publicId: string) { return this.service.getPublicText(publicId); } - @Get('public/ai-prompts/:host/:name/:publicId') + @Get('public/ai-prompts/:name/:prompt/:publicId') @Header('Content-Type', 'text/plain; charset=utf-8') getPublicLabeled(@Param('publicId') publicId: string) { return this.service.getPublicText(publicId); } - @Get('public/ai-prompts/:host/:publicId') + @Get('public/ai-prompts/:name/:publicId') @Header('Content-Type', 'text/plain; charset=utf-8') - getPublicHost(@Param('publicId') publicId: string) { + getPublicNamed(@Param('publicId') publicId: string) { return this.service.getPublicText(publicId); } diff --git a/src/ai-prompts/ai-prompts.service.ts b/src/ai-prompts/ai-prompts.service.ts index cd59412..bee3eb7 100644 --- a/src/ai-prompts/ai-prompts.service.ts +++ b/src/ai-prompts/ai-prompts.service.ts @@ -55,7 +55,6 @@ export class AiPromptsService { private publicUrl( publicId: string, labels?: { - host?: string | null; name?: string | null; promptName?: string | null; }, @@ -63,7 +62,6 @@ export class AiPromptsService { const base = this.config.get('API_PUBLIC_BASE_URL')?.replace(/\/$/, '') || 'https://api.meshkee.com'; - const host = labels?.host?.trim().toLowerCase(); const nameSlug = labels?.name?.trim() ? this.slugSegment(labels.name) : ''; @@ -71,7 +69,6 @@ export class AiPromptsService { ? this.slugSegment(labels.promptName) : ''; const parts = [ - host ? encodeURIComponent(host) : '', nameSlug ? encodeURIComponent(nameSlug) : '', promptSlug ? encodeURIComponent(promptSlug) : '', publicId, @@ -120,7 +117,6 @@ export class AiPromptsService { body: row.body, publicId: row.publicId, publicUrl: this.publicUrl(row.publicId, { - host: labels?.host, name: labels?.name, promptName: row.name, }),