lib/client/services/customTargeting/customTargeting.service.ts (81 lines of code) (raw):
import type { Client } from "soap";
import type { Statement, UpdateResult } from "../../../common/types";
import type {
CustomTargetingKeyAction,
CustomTargetingValueAction,
} from "./customTargeting.action";
import type { CustomTargetingServiceOperations } from "./customTargeting.interface";
import type {
CustomTargetingKey,
CustomTargetingKeyPage,
CustomTargetingValue,
CustomTargetingValuePage,
} from "./customTargeting.type";
export class CustomTargetingService
implements CustomTargetingServiceOperations
{
private _client: Client;
constructor(client: Client) {
this._client = client;
}
async createCustomTargetingKeys(
keys: Partial<CustomTargetingKey>[],
): Promise<CustomTargetingKey[]> {
return this._client.createCustomTargetingKeys({ keys });
}
async createCustomTargetingValues(
values: Partial<CustomTargetingValue>[],
): Promise<CustomTargetingValue[]> {
return this._client.createCustomTargetingValues({ values });
}
async getCustomTargetingKeysByStatement(
filterStatement: Statement,
): Promise<CustomTargetingKeyPage> {
return this._client.getCustomTargetingKeysByStatement({
filterStatement,
});
}
async getCustomTargetingValuesByStatement(
filterStatement: Statement,
): Promise<CustomTargetingValuePage> {
return this._client.getCustomTargetingValuesByStatement({
filterStatement,
});
}
async performCustomTargetingKeyAction(
customTargetingKeyAction: CustomTargetingKeyAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performCustomTargetingKeyAction({
customTargetingKeyAction: {
attributes: {
"xsi:type": customTargetingKeyAction.constructor.name,
},
},
filterStatement,
});
}
async performCustomTargetingValueAction(
customTargetingValueAction: CustomTargetingValueAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performCustomTargetingValueAction({
customTargetingValueAction: {
attributes: {
"xsi:type": customTargetingValueAction.constructor.name,
},
},
filterStatement,
});
}
async updateCustomTargetingKeys(
keys: CustomTargetingKey[],
): Promise<CustomTargetingKey[]> {
return this._client.updateCustomTargetingKeys({ keys });
}
async updateCustomTargetingValues(
values: CustomTargetingValue[],
): Promise<CustomTargetingValue[]> {
return this._client.updateCustomTargetingValues({ values });
}
}