lib/client/services/proposalLineItem/proposalLineItem.service.ts (53 lines of code) (raw):
import type { Client } from "soap";
import type { Statement, UpdateResult } from "../../../common/types";
import type { ProposalLineItemAction } from "./proposalLineItem.action";
import type {
ProposalLineItem,
ProposalLineItemMakegoodInfo,
ProposalLineItemPage,
} from "./proposalLineItem.type";
import type { ProposalLineItemServiceOperations } from "./proposalLineItemService.interface";
export class ProposalLineItemService
implements ProposalLineItemServiceOperations
{
private _client: Client;
constructor(client: Client) {
this._client = client;
}
async createMakegoods(
makegoodInfos: Partial<ProposalLineItemMakegoodInfo>[],
): Promise<ProposalLineItem[]> {
return this._client.createMakegoods({ makegoodInfos });
}
async createProposalLineItems(
proposalLineItems: Partial<ProposalLineItem>[],
): Promise<ProposalLineItem[]> {
return this._client.createProposalLineItems({ proposalLineItems });
}
async getProposalLineItemsByStatement(
filterStatement: Statement,
): Promise<ProposalLineItemPage> {
return this._client.getProposalLineItemsByStatement({
filterStatement,
});
}
async performProposalLineItemAction(
proposalLineItemAction: ProposalLineItemAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performProposalLineItemAction({
proposalLineItemAction: {
attributes: {
"xsi:type": proposalLineItemAction.constructor.name,
},
...proposalLineItemAction.buildAttributes(),
},
filterStatement,
});
}
async updateProposalLineItems(
proposalLineItems: ProposalLineItem[],
): Promise<ProposalLineItem[]> {
return this._client.updateProposalLineItems({ proposalLineItems });
}
}