@chuxingpay/hc-faas-base
Version:
FuXun Hotel Connector Base Objects
125 lines (124 loc) • 3.34 kB
TypeScript
export interface ICfg {
name: string;
version: string;
}
declare abstract class BaseMapping<T> {
private pkgName;
private pkgVersion;
private _soaHotelRequest;
constructor(config: ICfg);
/**
* 字段规则定义
*
* @readonly
* @type {T}
* @memberof BaseMapping
*/
abstract get rule(): T;
/**
* 标识字段, 用于判断是否需要更新
*
* @readonly
* @abstract
* @type {*}
* @memberof BaseMapping
*/
get compareKeys(): {
[key: string]: boolean | Function;
};
/**
* 批量 mapping 函数
*
* @abstract
* @param {any[]} candidates
* @param {boolean} withRawData
* @param {any} parameter
* @returns {Promise<T[]>}
* @memberof BaseMapping
*/
abstract doBatchMapping(candidates: any[], withRawData: boolean, parameter?: any): Promise<T[]>;
/**
* mapping 函数
*
* @abstract
* @param {*} candidate
* @param {boolean} withRawData
* @param {*} [parameter]
* @returns {Promise<T>}
* @memberof BaseMapping
*/
abstract doMapping(candidate: any, withRawData: boolean, parameter?: any): Promise<T>;
/**
* 根据实例 rules 匹配第三方原始数据
*
* @param {*} originData 第三方原始数据对象
* @param {boolean} withRawData 是否将原始记录写入数据库里面
* @param {*} [parameter] mapping 函数执行参数
* @returns {Promise<T>}
* @memberof BaseMapping
*/
mapping(originData: any, withRawData: boolean, parameter?: any): Promise<T>;
/**
* 对比操作
*
* @param {*} localData 当前本地数据
* @param {*} newDate 获取到的新数据
* @memberof BaseMapping
*/
compare(localData: any, newData: any): boolean;
/**
* 通过队列进行新增
*
* @param {string} channel
* @param {(T | T[])} data
* @returns {Promise<any>}
* @memberof BaseMapping
*/
createToQueue(channel: string, data: T | T[]): Promise<any>;
/**
* 通过队列进行更新
*
* @param {string} channel
* @param {(T | T[])} data
* @returns {Promise<any>}
* @memberof BaseMapping
*/
updateToQueue(channel: string, data: T | T[]): Promise<any>;
/**
* 通过 API 进行单条数据新增
*
* @param {string} endpoint
* @param {T} payload
* @returns {Promise<any>}
* @memberof BaseMapping
*/
createToApi(endpoint: string, payload: T): Promise<any>;
/**
* 通过 API 进行单条数据更新
*
* @param {string} endpoint
* @param {T} payload
* @returns {Promise<any>}
* @memberof BaseMapping
*/
updateToApi(endpoint: string, payload: T): Promise<any>;
/**
* 通过 API 进行批量新增
*
* @param {string} endpoint
* @param {T} payload
* @returns {Promise<any>}
* @memberof BaseMapping
*/
batchCreateToApi(endpoint: string, payload: T[]): Promise<any>;
/**
* 通过 API 进行批量更新
*
* @param {string} endpoint
* @param {T} payload
* @returns {Promise<any>}
* @memberof BaseMapping
*/
batchUpdateToApi(endpoint: string, payload: T[]): Promise<any>;
}
export default BaseMapping;