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