import {activeCustomerSession, authBody} from '@/lib/customer-auth';
import {ticketFilters, ticketId, ticketInput} from '@/lib/support-tickets';
import {ticketFailure, ticketRpc} from '@/lib/support-tickets-server';
import {json} from '@/lib/server';

export async function GET(request: Request) {
  try {
    const {token} = await activeCustomerSession(request);
    const params = new URL(request.url).searchParams;
    const id = params.get('id');
    return json(await ticketRpc(id === null ? 'marketplace_ticket_list' : 'marketplace_ticket_detail',
      id === null ? {p_filters: ticketFilters(params)} : {p_id: ticketId(id)}, token));
  } catch (error) {return ticketFailure(error);}
}
export async function POST(request: Request) {
  try {
    const body = await authBody(request);
    const {rpc, payload} = ticketInput(body);
    const {token} = await activeCustomerSession(request);
    return json(await ticketRpc(rpc, payload, token));
  } catch (error) {return ticketFailure(error);}
}
