lib/client/services/site/site.service.ts (35 lines of code) (raw):
import type { Client } from "soap";
import type { Statement, UpdateResult } from "../../../common/types";
import type { SiteAction } from "./site.action";
import type { Site, SitePage } from "./site.type";
import type { SiteServiceOperations } from "./siteService.interface";
export class SiteService implements SiteServiceOperations {
private _client: Client;
constructor(client: Client) {
this._client = client;
}
async createSites(sites: Partial<Site>[]): Promise<Site[]> {
return this._client.createSites({ sites });
}
async getSitesByStatement(filterStatement: Statement): Promise<SitePage> {
return this._client.getSitesByStatement({
filterStatement,
});
}
async performSiteAction(
siteAction: SiteAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performSiteAction({
siteAction: {
attributes: {
"xsi:type": siteAction.constructor.name,
},
},
filterStatement,
});
}
async updateSites(sites: Site[]): Promise<Site[]> {
return this._client.updateSites({ sites });
}
}