lib/client/services/audienceSegment/audienceSegment.service.ts (46 lines of code) (raw):
import type { Client } from "soap";
import type { Statement, UpdateResult } from "../../../common/types";
import type { AudienceSegmentAction } from "./audienceSegment.action";
import type {
AudienceSegmentPage,
FirstPartyAudienceSegment,
} from "./audienceSegment.type";
import type { AudienceSegmentServiceOperations } from "./audienceSegmentService.interface";
export class AudienceSegmentService
implements AudienceSegmentServiceOperations
{
private _client: Client;
constructor(client: Client) {
this._client = client;
}
async createAudienceSegments(
segments: Partial<FirstPartyAudienceSegment>[],
): Promise<FirstPartyAudienceSegment[]> {
return this._client.createAudienceSegments({ segments });
}
async getAudienceSegmentsByStatement(
filterStatement: Statement,
): Promise<AudienceSegmentPage> {
return this._client.getAudienceSegmentsByStatement({
filterStatement,
});
}
async performAudienceSegmentAction(
action: AudienceSegmentAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performAudienceSegmentAction({
action: {
attributes: {
"xsi:type": action.constructor.name,
},
},
filterStatement,
});
}
async updateAudienceSegments(
segments: FirstPartyAudienceSegment[],
): Promise<FirstPartyAudienceSegment[]> {
return this._client.updateAudienceSegments({ segments });
}
}