lib/client/services/order/order.service.ts (36 lines of code) (raw):
import type { Client } from "soap";
import type { Statement, UpdateResult } from "../../../common/types";
import type { OrderAction } from "./order.action";
import type { Order, OrderPage } from "./order.type";
import type { OrderServiceOperations } from "./orderService.interface";
export class OrderService implements OrderServiceOperations {
private _client: Client;
constructor(client: Client) {
this._client = client;
}
async createOrders(orders: Partial<Order>[]): Promise<Order[]> {
return this._client.createOrders({ orders });
}
async getOrdersByStatement(filterStatement: Statement): Promise<OrderPage> {
return this._client.getOrdersByStatement({
filterStatement,
});
}
async performOrderAction(
orderAction: OrderAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performOrderAction({
orderAction: {
attributes: {
"xsi:type": orderAction.constructor.name,
},
...orderAction.buildAttributes(),
},
filterStatement,
});
}
async updateOrders(orders: Order[]): Promise<Order[]> {
return this._client.updateOrders({ orders });
}
}