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

41 lines (40 loc) 1.8 kB
import { BidOptimizer } from '../../api/core/bidoptimizer/BidOptimizerInterface'; import { PluginProperty } from '../../api/core/plugin/PluginPropertyInterface'; import { BidDecision } from '../../api/plugin/bidoptimizer/BidDecision'; import { BidOptimizerRequest, SaleCondition } from '../../api/plugin/bidoptimizer/BidOptimizerRequestInterface'; import { BasePlugin, PropertiesWrapper } from '../common'; export type BidOptimizerPluginResponse = BidDecision; export interface BidOptimizerBaseInstanceContext { properties: PropertiesWrapper; bidOptimizer: BidOptimizer; } export declare abstract class BidOptimizerPlugin extends BasePlugin<BidOptimizerBaseInstanceContext> { instanceContext: Promise<BidOptimizerBaseInstanceContext>; constructor(enableThrottling?: boolean); /** * * @param bidOptimizerId */ fetchBidOptimizer(bidOptimizerId: string): Promise<BidOptimizer>; /** * * @param bidOptimizerId */ fetchBidOptimizerProperties(bidOptimizerId: string): Promise<PluginProperty[]>; findBestSalesConditions(bidPrice: number, salesConditions: SaleCondition[]): SaleCondition; /** * Method to build an instance context * To be overriden to get a cutom behavior * This is a default provided implementation * @param bidOptimizerId */ protected instanceContextBuilder(bidOptimizerId: string): Promise<BidOptimizerBaseInstanceContext>; /** * * @param request * @param instanceContext */ protected abstract onBidDecisions(request: BidOptimizerRequest, instanceContext: BidOptimizerBaseInstanceContext): Promise<BidOptimizerPluginResponse>; protected getInstanceContext(bidOptimizerId: string): Promise<BidOptimizerBaseInstanceContext>; private initBidDecisions; }