Files
accounted/app/api/vat/validate/route.ts
T
2026-02-24 16:06:36 +01:00

37 lines
1.1 KiB
TypeScript

import { createClient } from '@/lib/supabase/server'
import { NextResponse } from 'next/server'
import { validateBody } from '@/lib/api/validate'
import { ValidateVatNumberSchema } from '@/lib/api/schemas'
import { validateVatNumber } from '@/lib/vat/vies-client'
export async function POST(request: Request) {
const supabase = await createClient()
const { data: { user } } = await supabase.auth.getUser()
if (!user) {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
}
const result = await validateBody(request, ValidateVatNumberSchema)
if (!result.success) return result.response
const { vat_number, customer_id } = result.data
const validation = await validateVatNumber(vat_number)
// Update customer record if customer_id provided and VAT is valid
if (customer_id && validation.valid) {
await supabase
.from('customers')
.update({
vat_number: validation.vat_number,
vat_number_validated: true,
vat_number_validated_at: new Date().toISOString(),
})
.eq('id', customer_id)
.eq('user_id', user.id)
}
return NextResponse.json(validation)
}