Initial commit: Vuelato - buscador de vuelos
Some checks failed
ci / ci (22, ubuntu-latest) (push) Has been cancelled
Some checks failed
ci / ci (22, ubuntu-latest) (push) Has been cancelled
Nuxt 4 + Supabase + Flightics API. Incluye búsqueda de vuelos, inspiraciones, watchlist, tracking de precios y mapa interactivo. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
28
server/api/profile.patch.ts
Normal file
28
server/api/profile.patch.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { serverSupabaseClient } from '#supabase/server'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const client = await serverSupabaseClient(event)
|
||||
const { data: { user } } = await client.auth.getUser()
|
||||
if (!user) throw createError({ statusCode: 401, message: 'No autenticado' })
|
||||
|
||||
const body = await readBody(event)
|
||||
const allowed = ['home_airports', 'default_adults', 'default_children', 'default_infants', 'locale', 'show_origin_time']
|
||||
const patch: Record<string, unknown> = {}
|
||||
for (const key of allowed) {
|
||||
if (body[key] !== undefined) patch[key] = body[key]
|
||||
}
|
||||
|
||||
if (Object.keys(patch).length === 0) {
|
||||
throw createError({ statusCode: 400, message: 'Nada que actualizar' })
|
||||
}
|
||||
|
||||
const { data, error } = await client
|
||||
.from('profiles')
|
||||
.update(patch)
|
||||
.eq('id', user.id)
|
||||
.select()
|
||||
.single()
|
||||
|
||||
if (error) throw createError({ statusCode: 500, message: error.message })
|
||||
return data
|
||||
})
|
||||
Reference in New Issue
Block a user