From 3e61fe5694ea31ca078844db34405ab0e3e6d602 Mon Sep 17 00:00:00 2001 From: echo Date: Sat, 28 Feb 2026 18:22:48 +0100 Subject: [PATCH] fix: ensure slug and excerpt are never null to pass validation - Extract slug generation to separate variable before using in DTO - Convert null description to empty string for excerpt field - Prevents class-validator from rejecting null values - Fixes 'slug must be a string type' validation errors --- backend/src/modules/strapi.service.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/src/modules/strapi.service.ts b/backend/src/modules/strapi.service.ts index fe411e0..f823bdd 100644 --- a/backend/src/modules/strapi.service.ts +++ b/backend/src/modules/strapi.service.ts @@ -248,11 +248,15 @@ export class StrapiService { } } + // Generate slug if missing or null + const slug = + strapiArticle.slug || this.generateSlug(strapiArticle.title); + const articleData: Partial = { title: strapiArticle.title, - excerpt: strapiArticle.description, + excerpt: strapiArticle.description || '', content: strapiArticle.content, - slug: strapiArticle.slug || this.generateSlug(strapiArticle.title), + slug, status: strapiArticle.publishedAt ? ArticleStatus.PUBLISHED : ArticleStatus.DRAFT, @@ -335,11 +339,14 @@ export class StrapiService { } } + // Generate slug if missing or null + const slug = strapiArticle.slug || this.generateSlug(strapiArticle.title); + const articleData: Partial = { title: strapiArticle.title, - excerpt: strapiArticle.description, + excerpt: strapiArticle.description || '', content: strapiArticle.content, - slug: strapiArticle.slug || this.generateSlug(strapiArticle.title), + slug, status, tags: [], featuredImage: imageUrl,