/* * @author gs * @date 2020/09/24 14:10 */ import { TowifyClient } from './towify.client'; import { DatabaseInfo, ParamToDeleteMany, ParamToDeleteOne, ParamToFindMultipleTables, ParamToHandleData, ParamToRenameTable, ParamToUpdateMany, ParamToUpdateOneData } from './types'; export enum DataMicroserviceFunction { CreateProjectDatabase = 'DataService:createProjectDatabase', CreateData = 'DataService:createData', UpdateDataById = 'DataService:updateDataById', DeleteDataById = 'DataService:deleteDataById', FindData = 'DataService:findData', CreateTable = 'DataService:createTable', RenameTable = 'DataService:renameTable', FindDataFromMultipleTables = 'DataService:findDataFromMultipleTables', UpdateMany = 'DataService:updateMany', DeleteMany = 'DataService:deleteMany' } export class DataMicroserviceHandler { /** * 为project创建数据库 */ public static async createProjectDatabase(param: { databaseBaseUrl: string; databaseName: string; tableNamesObject: { [key: string]: string }; }): Promise { await TowifyClient.getInstance().sendMessage< void, { databaseBaseUrl: string; databaseName: string; tableNamesObject: { [key: string]: string }; } >(DataMicroserviceFunction.CreateProjectDatabase, param); } public static async createData(param: ParamToHandleData): Promise { const id = await TowifyClient.getInstance().sendMessage< string, ParamToHandleData >(DataMicroserviceFunction.CreateData, param); return id; } public static async updateDataById( param: ParamToUpdateOneData ): Promise { const id = await TowifyClient.getInstance().sendMessage< number, ParamToUpdateOneData >(DataMicroserviceFunction.UpdateDataById, param); return id; } public static async deleteDataById(param: ParamToDeleteOne): Promise { const id = await TowifyClient.getInstance().sendMessage< number, ParamToDeleteOne >(DataMicroserviceFunction.DeleteDataById, param); return id; } public static async findData(param: ParamToHandleData): Promise { const documents = await TowifyClient.getInstance().sendMessage< Object[], ParamToHandleData >(DataMicroserviceFunction.FindData, param); return documents; } public static async createTable(param: DatabaseInfo): Promise { await TowifyClient.getInstance().sendMessage( DataMicroserviceFunction.CreateTable, param ); } public static async renameTable(param: ParamToRenameTable): Promise { await TowifyClient.getInstance().sendMessage( DataMicroserviceFunction.RenameTable, param ); } public static async findDataFromMultipleTables( param: ParamToFindMultipleTables ): Promise { const documents = await TowifyClient.getInstance().sendMessage< Object[], ParamToFindMultipleTables >(DataMicroserviceFunction.FindDataFromMultipleTables, param); return documents; } public static async updateMany(param: ParamToUpdateMany): Promise { const id = await TowifyClient.getInstance().sendMessage< number, ParamToUpdateMany >(DataMicroserviceFunction.UpdateMany, param); return id; } public static async deleteMany(param: ParamToDeleteMany): Promise { const id = await TowifyClient.getInstance().sendMessage< number, ParamToDeleteMany >(DataMicroserviceFunction.DeleteMany, param); return id; } }