feat: ajouter la gestion des contacts et des hobbies avec des ressources associées

This commit is contained in:
2025-11-14 18:13:14 +01:00
parent 025820a85d
commit d36ba22c9a
14 changed files with 321 additions and 23 deletions

View File

@@ -0,0 +1,4 @@
export default defineEventHandler(async (event) => {
const { discord } = useRuntimeConfig(event)
return await $fetch(`https://api.lanyard.rest/v1/users/${discord.userId}`)
})

10
server/api/contact.get.ts Normal file
View File

@@ -0,0 +1,10 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return await queryCollection(event, 'contact')
.where('extension', '=', 'json')
.first()
}, {
name: 'contact-list',
maxAge: 3600 // 1 hour
})

View File

@@ -1,11 +1,9 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return {
body: await queryCollection(event, 'education')
.where('extension', '=', 'md')
.all()
}
return await queryCollection(event, 'education')
.where('extension', '=', 'md')
.all()
}, {
name: 'educations-list',
maxAge: 3600 // 1 hour

View File

@@ -1,11 +1,9 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return {
body: await queryCollection(event, 'experiences')
.where('extension', '=', 'md')
.all()
}
return await queryCollection(event, 'experiences')
.where('extension', '=', 'md')
.all()
}, {
name: 'experiences-list',
maxAge: 3600 // 1 hour

View File

@@ -0,0 +1,8 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return await queryCollection(event, 'hobbies').first()
}, {
name: 'hobbies-list',
maxAge: 3600 // 1 hour
})

View File

@@ -1,11 +1,9 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return {
body: await queryCollection(event, 'projects')
.where('extension', '=', 'md')
.all()
}
return await queryCollection(event, 'projects')
.where('extension', '=', 'md')
.all()
}, {
name: 'projects-list',
maxAge: 3600 // 1 hour

View File

@@ -1,11 +1,9 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return {
body: await queryCollection(event, 'skills')
.where('extension', '=', 'json')
.all()
}
return await queryCollection(event, 'skills')
.where('extension', '=', 'json')
.first()
}, {
name: 'skills-list',
maxAge: 3600 // 1 hour

View File

@@ -15,9 +15,7 @@ export default defineCachedEventHandler(async (event) => {
})
}
return {
body: uses_by_categories
}
return uses_by_categories
}, {
name: 'uses-list',
maxAge: 3600 // 1 hour

View File

@@ -0,0 +1,57 @@
import type { H3Event } from 'h3'
const cachedWakatimeCoding = defineCachedFunction(async (event: H3Event) => {
const config = useRuntimeConfig(event)
return await $fetch(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.coding}.json`)
}, {
maxAge: 24 * 60 * 60,
name: 'wakatime',
getKey: () => 'coding'
})
const cachedWakatimeEditors = defineCachedFunction(async (event: H3Event) => {
const config = useRuntimeConfig(event)
return await $fetch(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.editors}.json`)
}, {
maxAge: 24 * 60 * 60,
name: 'wakatime',
getKey: () => 'editors'
})
const cachedWakatimeOs = defineCachedFunction(async (event: H3Event) => {
const config = useRuntimeConfig(event)
return await $fetch(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.os}.json`)
}, {
maxAge: 24 * 60 * 60,
name: 'wakatime',
getKey: () => 'os'
})
const cachedWakatimeLanguages = defineCachedFunction(async (event: H3Event) => {
const config = useRuntimeConfig(event)
return await $fetch(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.languages}.json`)
}, {
maxAge: 24 * 60 * 60,
name: 'wakatime',
getKey: () => 'languages'
})
export default defineEventHandler(async (event) => {
const [coding, editors, os, languages] = await Promise.all([
cachedWakatimeCoding(event),
cachedWakatimeEditors(event),
cachedWakatimeOs(event),
cachedWakatimeLanguages(event)
])
return {
coding,
editors,
os,
languages
}
})