UNPKG

egg-orm-ts

Version:

Simple orm with Typeorm, for egg plugin.

76 lines 5.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseController = void 0; const egg_1 = require("egg"); const error_1 = require("../../lib/error"); /** * controller基类: * - 禁掉this.service访问,避免业务混乱; * - 提供统一的公共调用方法this.callService:校验参数和响应,传递参数; * - 提供this.success处理响应结果; */ class BaseController extends egg_1.Controller { constructor(_ctx) { super(_ctx); this.modelName = this.constructor.name[0].toLowerCase() + this.constructor.name.substring(1, this.constructor.name.length - 10); this.HTTP_CODE = error_1.HTTP_CODE; this.BIZ_CODE = error_1.BIZ_CODE; this.BizError = (message, code) => { if (process.env.NODE_ENV === 'development') { message = `${this.constructor.name} error:` + message; } throw new error_1.BizError(message, code); }; /** * Only use callService instead! */ this.service = undefined; // this.ctx.repo = undefined; // this.ctx.connection = undefined; /** * 统一公共调用方法 * @param {object} params 参数 * @param {object} paramsSchema 参数校验Joi对象 * @param {string} methodName 方法名称 * @param {object} resultSchema 结果校验Joi对象 * @return {object} result 原始dao响应对象 */ this.callService = async (params, paramsSchema, methodName, resultSchema) => { // controller 验证参数 if (paramsSchema) { const { error } = paramsSchema.validate(params); if (!!error) { throw this.BizError('参数错误:' + error.message); } } // 默认调用 controller 同名函数 let newMethodName = methodName; if (!newMethodName) { newMethodName = this.ctx.request.path.split('/').slice(-1)[0]; } const result = await this.ctx.service[this.modelName][newMethodName](params); // controller 验证响应结果 if (resultSchema) { const { error } = resultSchema.validate(result); if (!!error) { throw this.BizError('结果错误:' + error.message); } } return result; }; } /** * 默认 统一处理响应结果(可自定义) * - 接口会自动过滤掉 undefined 的属性,则转换为 null * @param res 参数 */ success(res) { // 统一响应结构 return { code: 0, data: !res ? null : res, }; } } exports.BaseController = BaseController; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTBDO0FBRTFDLDJDQUFnRTtBQUVoRTs7Ozs7R0FLRztBQUNILE1BQU0sY0FBZSxTQUFRLGdCQUFVO0lBY3JDLFlBQVksSUFBYTtRQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hJLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLGFBQWEsRUFBRTtnQkFDMUMsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUM7YUFDdkQ7WUFDRCxNQUFNLElBQUksZ0JBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBRUY7O1dBRUc7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6Qiw2QkFBNkI7UUFDN0IsbUNBQW1DO1FBRW5DOzs7Ozs7O1dBT0c7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUMxRSxrQkFBa0I7WUFDbEIsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7b0JBQ1gsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzlDO2FBQ0Y7WUFFRCx1QkFBdUI7WUFDdkIsSUFBSSxhQUFhLEdBQUcsVUFBVSxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2xCLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9EO1lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0Usb0JBQW9CO1lBQ3BCLElBQUksWUFBWSxFQUFFO2dCQUNoQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO29CQUNYLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUM5QzthQUNGO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsR0FBUTtRQUNkLFNBQVM7UUFDVCxPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRztTQUN4QixDQUFDO0lBQ0osQ0FBQztDQUVGO0FBRVEsd0NBQWMifQ==