lib/client/services/label/label.service.ts (35 lines of code) (raw):

import type { Client } from "soap"; import type { Statement, UpdateResult } from "../../../common/types"; import type { LabelAction } from "./label.action"; import type { LabelServiceOperations } from "./label.interface"; import type { Label, LabelPage } from "./label.type"; export class LabelService implements LabelServiceOperations { private _client: Client; constructor(client: Client) { this._client = client; } async createLabels(labels: Partial<Label>[]): Promise<Label[]> { return this._client.createLabels({ labels }); } async getLabelsByStatement(filterStatement: Statement): Promise<LabelPage> { return this._client.getLabelsByStatement({ filterStatement, }); } async performLabelAction( labelAction: LabelAction, filterStatement: Statement, ): Promise<UpdateResult> { return this._client.performLabelAction({ labelAction: { attributes: { "xsi:type": labelAction.constructor.name, }, }, filterStatement, }); } async updateLabels(labels: Label[]): Promise<Label[]> { return this._client.updateLabels({ labels }); } }