fix: ajouter la gestion des erreurs 404 pour les données manquantes dans les endpoints API

This commit is contained in:
2025-12-16 16:17:53 +01:00
parent 95ccb1c8ce
commit 629f917af8
10 changed files with 67 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
export default defineNuxtConfig({
modules: ["nitro-cloudflare-dev"],
modules: ['nitro-cloudflare-dev'],
devtools: {
enabled: true,
@@ -37,7 +37,7 @@ export default defineNuxtConfig({
openAPI: true
},
preset: "cloudflare_module",
preset: 'cloudflare_module',
cloudflare: {
deployConfig: true,
@@ -47,7 +47,10 @@ export default defineNuxtConfig({
hub: {
cache: true,
db: 'sqlite'
db: {
driver: 'd1',
dialect: 'sqlite'
}
},
eslint: {
@@ -73,4 +76,4 @@ export default defineNuxtConfig({
branch: 'master'
}
}
})
})

View File

@@ -1,8 +1,14 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'contact')
.where('extension', '=', 'json')
.first()
if (!result) {
throw createError({ statusCode: 404, statusMessage: 'Contact information not found' })
}
return result.body
}, {
maxAge: 60 * 60 * 24,

View File

@@ -1,11 +1,17 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'education')
.where('extension', '=', 'md')
.all()
if (result.length === 0) {
throw createError({ statusCode: 404, statusMessage: 'Education records not found' })
}
return result
.sort((a, b) => new Date(b.meta.startDate).getTime() - new Date(a.meta.startDate).getTime())
.map((edu) => ({
.sort((a, b) => new Date(b.meta.startDate as string).getTime() - new Date(a.meta.startDate as string).getTime())
.map(edu => ({
degree: edu.meta.degree,
institution: edu.meta.institution,
startDate: edu.meta.startDate,

View File

@@ -1,10 +1,16 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'experiences')
.where('extension', '=', 'md')
.all()
if (result.length === 0) {
throw createError({ statusCode: 404, statusMessage: 'Experience records not found' })
}
return result
.sort((a, b) => new Date(b.meta.startDate).getTime() - new Date(a.meta.startDate).getTime())
.sort((a, b) => new Date(b.meta.startDate as string).getTime() - new Date(a.meta.startDate as string).getTime())
.map(exp => ({
title: exp.meta.title,
company: exp.meta.company,

View File

@@ -1,7 +1,12 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'hobbies')
.where('extension', '=', 'md')
.first()
if (!result) {
throw createError({ statusCode: 404, statusMessage: 'Hobbies not found' })
}
return result.body
}, {

View File

@@ -1,8 +1,14 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'languages')
.where('extension', '=', 'json')
.first()
if (!result) {
throw createError({ statusCode: 404, statusMessage: 'Languages not found' })
}
return result.body
}, {
maxAge: 60 * 60 * 24,

View File

@@ -1,8 +1,14 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'profile')
.where('extension', '=', 'md')
.first()
if (!result) {
throw createError({ statusCode: 404, statusMessage: 'Profile not found' })
}
return result
}, {
maxAge: 60 * 60 * 24,

View File

@@ -1,8 +1,14 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'projects')
.where('extension', '=', 'md')
.all()
if (result.length === 0) {
throw createError({ statusCode: 404, statusMessage: 'Projects not found' })
}
return result
}, {
maxAge: 60 * 60 * 24,

View File

@@ -1,8 +1,14 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'skills')
.where('extension', '=', 'json')
.first()
if (!result) {
throw createError({ statusCode: 404, statusMessage: 'Skills not found' })
}
return result.body
}, {
maxAge: 60 * 60 * 24,

View File

@@ -1,12 +1,22 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
const categories = await queryCollection(event, 'usesCategories')
.where('extension', '=', 'md')
.all()
if (categories.length === 0) {
throw createError({ statusCode: 404, statusMessage: 'Uses categories not found' })
}
const uses = await queryCollection(event, 'uses')
.where('extension', '=', 'md')
.all()
if (uses.length === 0) {
throw createError({ statusCode: 404, statusMessage: 'Uses not found' })
}
const uses_by_categories = []
for (const category of categories) {
uses_by_categories.push({