UNPKG

@chuxingpay/hc-faas-base

Version:

FuXun Hotel Connector Base Objects

125 lines (124 loc) 3.34 kB
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;