1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 'use strict';
- const Controller = require('egg').Controller;
- const { CrudController } = require('naf-framework-mongoose-free/lib/controller');
- const assert = require('assert');
- const _ = require('lodash');
- //
- class UtilController extends Controller {
- constructor(ctx) {
- super(ctx);
- this.service = this.ctx.service.util;
- }
- async getConfig() {
- if (process.env.NODE_ENV !== 'development') {
- this.ctx.fail(-1, '无法在非开发环境使用该接口');
- return;
- }
- let { index, model } = this.ctx.query;
- assert(model, '缺少model');
- index = _.upperFirst(_.camelCase(index));
- model = _.upperFirst(_.camelCase(model));
- try {
- const mr = this.ctx.model[index][model];
- assert(mr, '未找到model信息');
- const sch = mr.schema.obj;
- const cols = Object.keys(sch);
- const q = { 'meta.createdAt@start': 'meta.createdAt@start', 'meta.createdAt@end': 'meta.createdAt@end' };
- for (const k in cols) {
- q[`${cols[k]}`] = cols[k];
- }
- const obj = {
- create: { requestBody: cols },
- destroy: {
- params: [ '!id' ],
- service: 'delete',
- },
- update: {
- params: [ '!id' ],
- requestBody: cols,
- },
- show: {
- parameters: {
- params: [ '!id' ],
- },
- service: 'fetch',
- },
- index: {
- parameters: {
- query: q,
- },
- service: 'query',
- options: {
- query: [ 'skip', 'limit' ],
- sort: [ 'meta.createdAt' ],
- desc: true,
- count: true,
- },
- },
- };
- // this.ctx.ok({ data: JSON.parse(JSON.stringify(obj), 1) });
- this.ctx.body = `module.exports = ${JSON.stringify(obj, null, 2)}`;
- } catch (error) {
- this.ctx.fail(-1, '获取config失败');
- }
- }
- }
- module.exports = CrudController(UtilController, {});
|