100kmph/app/api/admin/vehicles/route.ts
2025-11-06 00:25:08 +05:30

70 lines
1.8 KiB
TypeScript

import { NextResponse } from 'next/server';
import { supabaseAdmin } from '@/lib/supabase';
// POST /api/admin/vehicles - Create a new vehicle
export async function POST(request: Request) {
try {
const body = await request.json();
const { id, make, model, capacity, yom, owner } = body;
const { data, error } = await supabaseAdmin
.from('Vehicles')
.insert({
id: typeof id === 'string' ? id.toUpperCase() : id,
make: make || 'tvs',
model: model || 'rtr 200',
capacity: capacity || 200,
yom: yom || new Date().getFullYear(),
owner: owner || null,
})
.select()
.single();
if (error) {
console.error('Supabase error:', error);
return NextResponse.json(
{ error: 'Failed to create vehicle', details: error.message },
{ status: 500 }
);
}
return NextResponse.json(
{ message: 'Vehicle created successfully', vehicle: data },
{ status: 201 }
);
} catch (error) {
console.error('Error creating vehicle:', error);
return NextResponse.json(
{ error: 'Failed to create vehicle' },
{ status: 500 }
);
}
}
// GET /api/admin/vehicles - Get all vehicles
export async function GET() {
try {
const { data, error } = await supabaseAdmin
.from('Vehicles')
.select('*')
.order('registered_at', { ascending: false });
if (error) {
console.error('Supabase error:', error);
return NextResponse.json(
{ error: 'Failed to fetch vehicles', details: error.message },
{ status: 500 }
);
}
return NextResponse.json(data || []);
} catch (error) {
console.error('Error fetching vehicles:', error);
return NextResponse.json(
{ error: 'Failed to fetch vehicles' },
{ status: 500 }
);
}
}