37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import type { Address, AuditEvent, OrderDetail, OrderSummary } from "@orderops/shared";
|
|
import { apiRequest } from "../lib/api-client";
|
|
|
|
export function listOrders(query: string) {
|
|
const search = query.trim() ? `?query=${encodeURIComponent(query.trim())}` : "";
|
|
return apiRequest<OrderSummary[]>(`/api/orders${search}`);
|
|
}
|
|
|
|
export function getOrder(orderId: string) {
|
|
return apiRequest<OrderDetail>(`/api/orders/${orderId}`);
|
|
}
|
|
|
|
export function listAuditEvents(orderId: string) {
|
|
return apiRequest<AuditEvent[]>(`/api/orders/${orderId}/audit-events`);
|
|
}
|
|
|
|
export function updateOrderItemQuantity(orderId: string, itemId: string, quantity: number) {
|
|
return apiRequest<OrderDetail>(`/api/orders/${orderId}/items/${itemId}/quantity`, {
|
|
method: "POST",
|
|
body: JSON.stringify({ quantity })
|
|
});
|
|
}
|
|
|
|
export function updateShippingAddress(orderId: string, address: Address) {
|
|
return apiRequest<OrderDetail>(`/api/orders/${orderId}/shipping-address`, {
|
|
method: "POST",
|
|
body: JSON.stringify(address)
|
|
});
|
|
}
|
|
|
|
export function cancelOrder(orderId: string, reason?: string) {
|
|
return apiRequest<OrderDetail>(`/api/orders/${orderId}/cancel`, {
|
|
method: "POST",
|
|
body: JSON.stringify({ reason })
|
|
});
|
|
}
|