mirror of
https://github.com/ArthurDanjou/artapi.git
synced 2026-01-28 20:10:26 +01:00
fix: ajouter la gestion des erreurs 404 pour les données manquantes dans les endpoints API
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
|
|
||||||
modules: ["nitro-cloudflare-dev"],
|
modules: ['nitro-cloudflare-dev'],
|
||||||
|
|
||||||
devtools: {
|
devtools: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
@@ -37,7 +37,7 @@ export default defineNuxtConfig({
|
|||||||
openAPI: true
|
openAPI: true
|
||||||
},
|
},
|
||||||
|
|
||||||
preset: "cloudflare_module",
|
preset: 'cloudflare_module',
|
||||||
|
|
||||||
cloudflare: {
|
cloudflare: {
|
||||||
deployConfig: true,
|
deployConfig: true,
|
||||||
@@ -47,7 +47,10 @@ export default defineNuxtConfig({
|
|||||||
|
|
||||||
hub: {
|
hub: {
|
||||||
cache: true,
|
cache: true,
|
||||||
db: 'sqlite'
|
db: {
|
||||||
|
driver: 'd1',
|
||||||
|
dialect: 'sqlite'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
eslint: {
|
eslint: {
|
||||||
@@ -73,4 +76,4 @@ export default defineNuxtConfig({
|
|||||||
branch: 'master'
|
branch: 'master'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const result = await queryCollection(event, 'contact')
|
const result = await queryCollection(event, 'contact')
|
||||||
.where('extension', '=', 'json')
|
.where('extension', '=', 'json')
|
||||||
.first()
|
.first()
|
||||||
|
|
||||||
|
if (!result) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Contact information not found' })
|
||||||
|
}
|
||||||
|
|
||||||
return result.body
|
return result.body
|
||||||
}, {
|
}, {
|
||||||
maxAge: 60 * 60 * 24,
|
maxAge: 60 * 60 * 24,
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const result = await queryCollection(event, 'education')
|
const result = await queryCollection(event, 'education')
|
||||||
.where('extension', '=', 'md')
|
.where('extension', '=', 'md')
|
||||||
.all()
|
.all()
|
||||||
|
|
||||||
|
if (result.length === 0) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Education records not found' })
|
||||||
|
}
|
||||||
|
|
||||||
return result
|
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((edu) => ({
|
.map(edu => ({
|
||||||
degree: edu.meta.degree,
|
degree: edu.meta.degree,
|
||||||
institution: edu.meta.institution,
|
institution: edu.meta.institution,
|
||||||
startDate: edu.meta.startDate,
|
startDate: edu.meta.startDate,
|
||||||
|
|||||||
@@ -1,10 +1,16 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const result = await queryCollection(event, 'experiences')
|
const result = await queryCollection(event, 'experiences')
|
||||||
.where('extension', '=', 'md')
|
.where('extension', '=', 'md')
|
||||||
.all()
|
.all()
|
||||||
|
|
||||||
|
if (result.length === 0) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Experience records not found' })
|
||||||
|
}
|
||||||
|
|
||||||
return result
|
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 => ({
|
.map(exp => ({
|
||||||
title: exp.meta.title,
|
title: exp.meta.title,
|
||||||
company: exp.meta.company,
|
company: exp.meta.company,
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const result = await queryCollection(event, 'hobbies')
|
const result = await queryCollection(event, 'hobbies')
|
||||||
.where('extension', '=', 'md')
|
.where('extension', '=', 'md')
|
||||||
.first()
|
.first()
|
||||||
|
if (!result) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Hobbies not found' })
|
||||||
|
}
|
||||||
|
|
||||||
return result.body
|
return result.body
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const result = await queryCollection(event, 'languages')
|
const result = await queryCollection(event, 'languages')
|
||||||
.where('extension', '=', 'json')
|
.where('extension', '=', 'json')
|
||||||
.first()
|
.first()
|
||||||
|
|
||||||
|
if (!result) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Languages not found' })
|
||||||
|
}
|
||||||
|
|
||||||
return result.body
|
return result.body
|
||||||
}, {
|
}, {
|
||||||
maxAge: 60 * 60 * 24,
|
maxAge: 60 * 60 * 24,
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const result = await queryCollection(event, 'profile')
|
const result = await queryCollection(event, 'profile')
|
||||||
.where('extension', '=', 'md')
|
.where('extension', '=', 'md')
|
||||||
.first()
|
.first()
|
||||||
|
|
||||||
|
if (!result) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Profile not found' })
|
||||||
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}, {
|
}, {
|
||||||
maxAge: 60 * 60 * 24,
|
maxAge: 60 * 60 * 24,
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const result = await queryCollection(event, 'projects')
|
const result = await queryCollection(event, 'projects')
|
||||||
.where('extension', '=', 'md')
|
.where('extension', '=', 'md')
|
||||||
.all()
|
.all()
|
||||||
|
|
||||||
|
if (result.length === 0) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Projects not found' })
|
||||||
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}, {
|
}, {
|
||||||
maxAge: 60 * 60 * 24,
|
maxAge: 60 * 60 * 24,
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const result = await queryCollection(event, 'skills')
|
const result = await queryCollection(event, 'skills')
|
||||||
.where('extension', '=', 'json')
|
.where('extension', '=', 'json')
|
||||||
.first()
|
.first()
|
||||||
|
|
||||||
|
if (!result) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Skills not found' })
|
||||||
|
}
|
||||||
|
|
||||||
return result.body
|
return result.body
|
||||||
}, {
|
}, {
|
||||||
maxAge: 60 * 60 * 24,
|
maxAge: 60 * 60 * 24,
|
||||||
|
|||||||
@@ -1,12 +1,22 @@
|
|||||||
|
import { queryCollection } from '@nuxt/content/server'
|
||||||
|
|
||||||
export default defineCachedEventHandler(async (event) => {
|
export default defineCachedEventHandler(async (event) => {
|
||||||
const categories = await queryCollection(event, 'usesCategories')
|
const categories = await queryCollection(event, 'usesCategories')
|
||||||
.where('extension', '=', 'md')
|
.where('extension', '=', 'md')
|
||||||
.all()
|
.all()
|
||||||
|
|
||||||
|
if (categories.length === 0) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Uses categories not found' })
|
||||||
|
}
|
||||||
|
|
||||||
const uses = await queryCollection(event, 'uses')
|
const uses = await queryCollection(event, 'uses')
|
||||||
.where('extension', '=', 'md')
|
.where('extension', '=', 'md')
|
||||||
.all()
|
.all()
|
||||||
|
|
||||||
|
if (uses.length === 0) {
|
||||||
|
throw createError({ statusCode: 404, statusMessage: 'Uses not found' })
|
||||||
|
}
|
||||||
|
|
||||||
const uses_by_categories = []
|
const uses_by_categories = []
|
||||||
for (const category of categories) {
|
for (const category of categories) {
|
||||||
uses_by_categories.push({
|
uses_by_categories.push({
|
||||||
|
|||||||
Reference in New Issue
Block a user