lib/client/services/customField/customField.service.ts (62 lines of code) (raw):
import type { Client } from "soap";
import type { Statement, UpdateResult } from "../../../common/types";
import type { CustomFieldAction } from "./customField.action";
import type {
CustomField,
CustomFieldOption,
CustomFieldPage,
} from "./customField.type";
import type { CustomFieldServiceOperations } from "./customFieldService.interface";
export class CustomFieldService implements CustomFieldServiceOperations {
private _client: Client;
constructor(client: Client) {
this._client = client;
}
async createCustomFieldOptions(
customFieldOptions: Partial<CustomFieldOption>[],
): Promise<CustomFieldOption[]> {
return this._client.createCustomFieldOptions({ customFieldOptions });
}
async createCustomFields(
customFields: Partial<CustomField>[],
): Promise<CustomField[]> {
return this._client.createCustomFields({ customFields });
}
async getCustomFieldOption(
customFieldOptionId: number,
): Promise<CustomFieldOption> {
return this._client.getCustomFieldsByStatement({
customFieldOptionId,
});
}
async getCustomFieldsByStatement(
filterStatement: Statement,
): Promise<CustomFieldPage> {
return this._client.getCustomFieldsByStatement({
filterStatement,
});
}
async performCustomFieldAction(
customFieldAction: CustomFieldAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performCustomFieldAction({
customFieldAction: {
attributes: {
"xsi:type": customFieldAction.constructor.name,
},
},
filterStatement,
});
}
async updateCustomFieldOptions(
customFieldOptions: CustomFieldOption[],
): Promise<CustomFieldOption[]> {
return this._client.updateCustomFields({ customFieldOptions });
}
async updateCustomFields(
CustomFields: CustomField[],
): Promise<CustomField[]> {
return this._client.updateCustomFields({ CustomFields });
}
}