UNPKG

@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
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 {};