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

67 lines
1.6 KiB
TypeScript

import { NextResponse } from 'next/server';
import { supabaseAdmin } from '@/lib/supabase';
// POST /api/admin/customers - Create a new customer
export async function POST(request: Request) {
try {
const body = await request.json();
const { name, address, tier } = body;
const { data, error } = await supabaseAdmin
.from('Customers')
.insert({
name: name,
address: address || '',
tier: tier || 0,
})
.select()
.single();
if (error) {
console.error('Supabase error:', error);
return NextResponse.json(
{ error: 'Failed to create customer', details: error.message },
{ status: 500 }
);
}
return NextResponse.json(
{ message: 'Customer created successfully', customer: data },
{ status: 201 }
);
} catch (error) {
console.error('Error creating customer:', error);
return NextResponse.json(
{ error: 'Failed to create customer' },
{ status: 500 }
);
}
}
// GET /api/admin/customers - Get all customers
export async function GET() {
try {
const { data, error } = await supabaseAdmin
.from('Customers')
.select('*')
.order('registered_at', { ascending: false });
if (error) {
console.error('Supabase error:', error);
return NextResponse.json(
{ error: 'Failed to fetch customers', details: error.message },
{ status: 500 }
);
}
return NextResponse.json(data || []);
} catch (error) {
console.error('Error fetching customers:', error);
return NextResponse.json(
{ error: 'Failed to fetch customers' },
{ status: 500 }
);
}
}