@mediarithmics/plugins-nodejs-sdk
Version:
This is the mediarithmics nodejs to help plugin developers bootstrapping their plugin without having to deal with most of the plugin boilerplate
51 lines (50 loc) • 5.03 kB
TypeScript
import express from 'express';
import { PluginProperty } from '../../';
import { AudienceSegmentExternalFeedResource, AudienceSegmentResource } from '../../api/core/audiencesegment/AudienceSegmentInterface';
import { BatchUpdatePluginResponse, BatchUpdateRequest } from '../../api/core/batchupdate/BatchUpdateInterface';
import { RealmFilter, UserAgentIdentifierRealmSelectionResource } from '../../api/core/webdomain/UserAgentIdentifierRealmSelectionInterface';
import { BatchedUserSegmentUpdatePluginResponse, ExternalSegmentAuthenticationResponse, ExternalSegmentAuthenticationStatusQueryResponse, ExternalSegmentConnectionPluginResponse, ExternalSegmentCreationPluginResponse, ExternalSegmentDynamicPropertyValuesQueryResponse, ExternalSegmentLogoutResponse, ExternalSegmentTroubleshootResponse, UserSegmentUpdatePluginResponse } from '../../api/plugin/audiencefeedconnector/AudienceFeedConnectorPluginResponseInterface';
import { AudienceFeedBatchContext, ExternalSegmentAuthenticationRequest, ExternalSegmentAuthenticationStatusQueryRequest, ExternalSegmentConnectionRequest, ExternalSegmentCreationRequest, ExternalSegmentDynamicPropertyValuesQueryRequest, ExternalSegmentLogoutRequest, ExternalSegmentTroubleshootRequest, UserSegmentUpdateRequest } from '../../api/plugin/audiencefeedconnector/AudienceFeedConnectorRequestInterface';
import { BasePlugin, PropertiesWrapper } from '../common';
export interface AudienceFeedConnectorBaseInstanceContext {
feed: AudienceSegmentExternalFeedResource;
feedProperties: PropertiesWrapper;
}
declare abstract class GenericAudienceFeedConnectorBasePlugin<T, R extends BatchedUserSegmentUpdatePluginResponse<T> | UserSegmentUpdatePluginResponse> extends BasePlugin<AudienceFeedConnectorBaseInstanceContext> {
constructor(enableThrottling?: boolean);
fetchAudienceSegment(feedId: string): Promise<AudienceSegmentResource>;
fetchUserAgentIdentifierRealms(datamartId: string): Promise<Array<UserAgentIdentifierRealmSelectionResource>>;
checkUserAgentIdentifierRealm(datamartId: string, realmFilter: RealmFilter): Promise<void>;
fetchAudienceFeed(feedId: string): Promise<AudienceSegmentExternalFeedResource>;
fetchAudienceFeedProperties(feedId: string): Promise<PluginProperty[]>;
createAudienceFeedProperties(feedId: string, property: PluginProperty): Promise<PluginProperty[]>;
updateAudienceFeedProperties(feedId: string, property: PluginProperty): Promise<PluginProperty[]>;
protected instanceContextBuilder(feedId: string): Promise<AudienceFeedConnectorBaseInstanceContext>;
protected abstract onExternalSegmentCreation(request: ExternalSegmentCreationRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise<ExternalSegmentCreationPluginResponse>;
protected abstract onExternalSegmentConnection(request: ExternalSegmentConnectionRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise<ExternalSegmentConnectionPluginResponse>;
protected abstract onUserSegmentUpdate(request: UserSegmentUpdateRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise<R>;
protected onTroubleshoot(request: ExternalSegmentTroubleshootRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise<ExternalSegmentTroubleshootResponse>;
protected onAuthenticationStatusQuery(request: ExternalSegmentAuthenticationStatusQueryRequest): Promise<ExternalSegmentAuthenticationStatusQueryResponse>;
protected onAuthentication(request: ExternalSegmentAuthenticationRequest): Promise<ExternalSegmentAuthenticationResponse>;
protected onLogout(request: ExternalSegmentLogoutRequest): Promise<ExternalSegmentLogoutResponse>;
protected onDynamicPropertyValuesQuery(request: ExternalSegmentDynamicPropertyValuesQueryRequest): Promise<ExternalSegmentDynamicPropertyValuesQueryResponse>;
protected getInstanceContext(feedId: string, forceRefresh?: boolean): Promise<AudienceFeedConnectorBaseInstanceContext>;
protected emptyBodyFilter(req: express.Request, res: express.Response, next: express.NextFunction): void;
private initExternalSegmentCreation;
private initExternalSegmentConnection;
private initUserSegmentUpdate;
private initTroubleshoot;
private initAuthenticationStatusQuery;
private initAuthentication;
private initLogoutQuery;
private initDynamicPropertyValuesQuery;
}
export declare abstract class BatchedAudienceFeedConnectorBasePlugin<T> extends GenericAudienceFeedConnectorBasePlugin<T, BatchedUserSegmentUpdatePluginResponse<T>> {
constructor(enableThrottling?: boolean);
protected abstract onBatchUpdate(request: BatchUpdateRequest<AudienceFeedBatchContext, T>, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise<BatchUpdatePluginResponse>;
}
export declare abstract class AudienceFeedConnectorBasePlugin extends GenericAudienceFeedConnectorBasePlugin<void, UserSegmentUpdatePluginResponse> {
constructor(enableThrottling?: boolean);
private initBatchUpdate;
}
export {};