/**
* REST Handler — Orders
* Handles /ucp/v1/orders routes for order tracking.
*/
import type { RESTRequest, RESTResponse } from './types.js';
import { ok, notFound, badRequest, methodNotAllowed, serverError } from './types.js';
import { trackOrder } from '../tools/track-order.js';
export async function handleOrders(req: RESTRequest): Promise<RESTResponse> {
if (req.method !== 'GET') {
return methodNotAllowed(['GET']);
}
// GET /ucp/v1/orders (no ID)
if (req.segments.length === 0) {
return badRequest('order_id is required');
}
// GET /ucp/v1/orders/{orderId}
const orderId = req.segments[0] ?? '';
try {
const result = await trackOrder({ order_id: orderId });
if (!result.found) {
return notFound(`Order ${orderId} not found`);
}
return ok(result);
} catch (error) {
const message = error instanceof Error ? error.message : String(error);
return serverError(message);
}
}