import { toSolutionView } from '~~/server/mappers/solutionMapper'; import { toSolutionListView } from '~~/server/mappers/solutionListMapper'; export const solutionService = { async getSolutionList(locale: string) { const query = await loadAssetAsString( 'assets/server', 'graphql/solutionList.graphql' ); if (!query) { throw createError({ statusCode: 500, message: 'GraphQL query not found', }); } const data = await directus.query<{ solutions: Solution[] }>(query, { locale: locale, }); const solutions = data?.solutions || []; return solutions.map((solution) => toSolutionListView(solution)); }, async getSolutionById(id: string, locale: string) { const query = await loadAssetAsString( 'assets/server', 'graphql/solution.graphql' ); if (!query) { throw createError({ statusCode: 500, message: 'GraphQL query not found', }); } const data = await directus.query<{ solutions_by_id: Solution }>(query, { id: id, locale: locale, }); const solution = data?.solutions_by_id; if (!solution || solution.status === 'archived') { throw createError({ statusCode: 404, statusMessage: 'Solution not found', }); } return toSolutionView(solution); }, };