diff --git a/src/pages/api/search/index.ts b/src/pages/api/search/index.ts index 375bb97..fceb234 100644 --- a/src/pages/api/search/index.ts +++ b/src/pages/api/search/index.ts @@ -10,6 +10,8 @@ export default async function handler( query: { q = '', tags: tagsString = '', type: typeString = '' }, } = req + const query = Array.isArray(q) ? q.join(' ').trim() : q.trim() + const tags = typeof tagsString === 'string' ? tagsString @@ -43,7 +45,7 @@ export default async function handler( if (postTypes.length > 0) { const response = await strapiApi.searchPosts({ tags, - query: Array.isArray(q) ? q.join(' ').trim() : q.trim(), + query, types: postTypes as LPE.PostType[], limit: 15, skip: 0, @@ -52,6 +54,14 @@ export default async function handler( result.posts.push(...(response.data ?? [])) } + if (query.trim().length === 0) { + result.posts = result.posts.sort( + (a, b) => + +new Date((b.data as LPE.Post.Document).publishedAt || 0) - + +new Date((a.data as LPE.Post.Document).publishedAt || 0), + ) + } + res.status(200).json({ data: result, }) diff --git a/src/services/strapi/transformers/Post.transformer.ts b/src/services/strapi/transformers/Post.transformer.ts index cd2c24e..4ca71c7 100644 --- a/src/services/strapi/transformers/Post.transformer.ts +++ b/src/services/strapi/transformers/Post.transformer.ts @@ -80,6 +80,7 @@ export const postTransformer: Transformer< slug, modifiedAt: publishedAt, createdAt: publishedAt, + publishedAt, coverImage, tags, content, diff --git a/src/types/lpe.types.ts b/src/types/lpe.types.ts index 0b68251..7d755ab 100644 --- a/src/types/lpe.types.ts +++ b/src/types/lpe.types.ts @@ -165,6 +165,7 @@ export namespace LPE { createdAt: string | null modifiedAt: string | null + publishedAt: string | null type: typeof LPE.PostTypes.Article }