constructor (name, schema, db, opts) { opts = opts || {} this._db = db this._schema = schema this._name = name this._collName = opts.collName || inflected.pluralize(name).toLowerCase() this._opts = opts this._plugins = {} Query.bindQuery(this, mongodb.Collection) // alias this.create = this.insert this.index = this.createIndex _.defaults(this._plugins, this._db._plugins) }
const migration = (tabName, structure) => { let tabNames = Inflector.pluralize(tabName); let result = ` 'use strict'; module.exports = { async up(queryInterface, Sequelize) { const { INTEGER, DATE, STRING,TEXT,BOOLEAN,DECIMAL } = Sequelize; await queryInterface.createTable('${tabNames}', ${structure}); }, async down(queryInterface) { await queryInterface.dropTable('${tabNames}'); } }; ` return result }
getFilePath(packageName) { let PackageName = firstUpperCase(packageName); let packageNames = Inflector.pluralize(packageName); let modelFilePath = path.resolve(__dirname, `../model/${packageName}.js`); let migrationFilePath = path.resolve(__dirname, `../../database/migrations/${packageNames}.js`); let controllerFilePath = path.resolve(__dirname, `./${packageNames}.js`); let adminListPath = `admin/src/pages/${PackageName}`; let adminListJsFilePath = path.resolve(adminListPath, `${packageName}.js`); let adminListLessFilePath = path.resolve(adminListPath, `${packageName}.less`); let adminListmodelFilePath = path.resolve(adminListPath, `model.js`); let adminListServiceFilePath = path.resolve(adminListPath, `service.js`); let files = { modelFilePath, migrationFilePath, controllerFilePath, adminListJsFilePath, adminListLessFilePath, adminListmodelFilePath, adminListServiceFilePath, adminListPath }; return files; }
delete(routeName) { let packageName = this.ctx.request.body.packageName || routeName; let packageNames = Inflector.pluralize(packageName); let PackageName = firstUpperCase(packageName); let files = this.getFilePath(packageName);