lib/client/services/adRule/adRule.service.ts (69 lines of code) (raw):
import type { Client } from "soap";
import type { Statement, UpdateResult } from "../../../common/types";
import type { AdRuleAction } from "./adRule.action";
import type {
AdRule,
AdRulePage,
BreakTemplate,
BreakTemplatePage,
} from "./adRule.type";
import type { AdRuleServiceOperations } from "./adRuleService.interface";
import type { AdSpot, AdSpotPage } from "./adSpot.type";
export class AdRuleService implements AdRuleServiceOperations {
private _client: Client;
constructor(client: Client) {
this._client = client;
}
createAdRules(adRules: Partial<AdRule>[]): Promise<AdRule[]> {
return this._client.createAdRules({ adRules });
}
createAdSpots(adSports: Partial<AdSpot>[]): Promise<AdSpot[]> {
return this._client.createAdSpots({ adSports });
}
createBreakTemplates(
breakTemplate: Partial<BreakTemplate>[],
): Promise<BreakTemplate[]> {
return this._client.createBreakTemplates({ breakTemplate });
}
getAdRulesByStatement(statement: Statement): Promise<AdRulePage> {
return this._client.getAdRulesByStatement({
statement,
});
}
getAdSpotsByStatement(filterStatement: Statement): Promise<AdSpotPage> {
return this._client.getAdSpotsByStatement({
filterStatement,
});
}
getBreakTemplatesByStatement(
filterStatement: Statement,
): Promise<BreakTemplatePage> {
return this._client.getBreakTemplatesByStatement({
filterStatement,
});
}
performAdRuleAction(
adRuleAction: AdRuleAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performAdRuleAction({
adRuleAction: {
attributes: {
"xsi:type": adRuleAction.constructor.name,
},
},
filterStatement,
});
}
updateAdRules(adRules: AdRule[]): Promise<AdRule[]> {
return this._client.updateAdRules({ adRules });
}
updateAdSpots(adSports: AdSpot[]): Promise<AdSpot[]> {
return this._client.updateAdSpots({ adSports });
}
updateBreakTemplates(
breakTemplate: BreakTemplate[],
): Promise<BreakTemplate[]> {
return this._client.updateBreakTemplates({ breakTemplate });
}
}