diff --git a/packages/api/src/controllers/archive.js b/packages/api/src/controllers/archive.js index 371f1bd61..052987e19 100644 --- a/packages/api/src/controllers/archive.js +++ b/packages/api/src/controllers/archive.js @@ -10,7 +10,7 @@ const { saveFreeTableData } = require('../utility/freeTableStorage'); const loadFilesRecursive = require('../utility/loadFilesRecursive'); module.exports = { - folders_meta: 'get', + folders_meta: true, async folders() { const folders = await fs.readdir(archivedir()); return [ @@ -27,14 +27,14 @@ module.exports = { ]; }, - createFolder_meta: 'post', + createFolder_meta: true, async createFolder({ folder }) { await fs.mkdir(path.join(archivedir(), folder)); socket.emitChanged('archive-folders-changed'); return true; }, - createLink_meta: 'post', + createLink_meta: true, async createLink({ linkedFolder }) { const folder = await this.getNewArchiveFolder({ database: path.parse(linkedFolder).name + '.link' }); fs.writeFile(path.join(archivedir(), folder), linkedFolder); @@ -43,7 +43,7 @@ module.exports = { return folder; }, - files_meta: 'get', + files_meta: true, async files({ folder }) { const dir = resolveArchiveFolder(folder); if (!(await fs.exists(dir))) return []; @@ -70,23 +70,23 @@ module.exports = { ]; }, - refreshFiles_meta: 'post', + refreshFiles_meta: true, async refreshFiles({ folder }) { socket.emitChanged(`archive-files-changed-${folder}`); }, - refreshFolders_meta: 'post', + refreshFolders_meta: true, async refreshFolders() { socket.emitChanged(`archive-folders-changed`); }, - deleteFile_meta: 'post', + deleteFile_meta: true, async deleteFile({ folder, file, fileType }) { await fs.unlink(path.join(resolveArchiveFolder(folder), `${file}.${fileType}`)); socket.emitChanged(`archive-files-changed-${folder}`); }, - renameFile_meta: 'post', + renameFile_meta: true, async renameFile({ folder, file, newFile, fileType }) { await fs.rename( path.join(resolveArchiveFolder(folder), `${file}.${fileType}`), @@ -95,14 +95,14 @@ module.exports = { socket.emitChanged(`archive-files-changed-${folder}`); }, - renameFolder_meta: 'post', + renameFolder_meta: true, async renameFolder({ folder, newFolder }) { const uniqueName = await this.getNewArchiveFolder({ database: newFolder }); await fs.rename(path.join(archivedir(), folder), path.join(archivedir(), uniqueName)); socket.emitChanged(`archive-folders-changed`); }, - deleteFolder_meta: 'post', + deleteFolder_meta: true, async deleteFolder({ folder }) { if (!folder) throw new Error('Missing folder parameter'); if (folder.endsWith('.link')) { @@ -113,14 +113,14 @@ module.exports = { socket.emitChanged(`archive-folders-changed`); }, - saveFreeTable_meta: 'post', + saveFreeTable_meta: true, async saveFreeTable({ folder, file, data }) { await saveFreeTableData(path.join(resolveArchiveFolder(folder), `${file}.jsonl`), data); socket.emitChanged(`archive-files-changed-${folder}`); return true; }, - loadFreeTable_meta: 'post', + loadFreeTable_meta: true, async loadFreeTable({ folder, file }) { return new Promise((resolve, reject) => { const fileStream = fs.createReadStream(path.join(resolveArchiveFolder(folder), `${file}.jsonl`)); diff --git a/packages/api/src/controllers/config.js b/packages/api/src/controllers/config.js index b86f67461..d4221e215 100644 --- a/packages/api/src/controllers/config.js +++ b/packages/api/src/controllers/config.js @@ -21,7 +21,7 @@ module.exports = { } }, - get_meta: 'get', + get_meta: true, async get() { const permissions = process.env.PERMISSIONS ? process.env.PERMISSIONS.split(',') : null; @@ -33,17 +33,17 @@ module.exports = { }; }, - platformInfo_meta: 'get', + platformInfo_meta: true, async platformInfo() { return platformInfo; }, - getSettings_meta: 'get', + getSettings_meta: true, async getSettings() { return this.settingsValue; }, - updateSettings_meta: 'post', + updateSettings_meta: true, async updateSettings(values) { if (!hasPermission(`settings/change`)) return false; try { @@ -60,7 +60,7 @@ module.exports = { } }, - changelog_meta: 'get', + changelog_meta: true, async changelog() { const resp = await axios.default.get('https://raw.githubusercontent.com/dbgate/dbgate/master/CHANGELOG.md'); return resp.data; diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js index 5321807ce..fc175c466 100644 --- a/packages/api/src/controllers/connections.js +++ b/packages/api/src/controllers/connections.js @@ -126,7 +126,7 @@ module.exports = { } }, - list_meta: 'get', + list_meta: true, async list() { return portalConnections || this.datastore.find(); }, @@ -148,7 +148,7 @@ module.exports = { subprocess.send(req.body); }, - save_meta: 'post', + save_meta: true, async save(connection) { if (portalConnections) return; let res; @@ -162,7 +162,7 @@ module.exports = { return res; }, - update_meta: 'post', + update_meta: true, async update({ _id, values }) { if (portalConnections) return; const res = await this.datastore.update({ _id }, { $set: values }); @@ -170,7 +170,7 @@ module.exports = { return res; }, - updateDatabase_meta: 'post', + updateDatabase_meta: true, async updateDatabase({ conid, database, values }) { if (portalConnections) return; const conn = await this.datastore.find({ _id: conid }); @@ -185,7 +185,7 @@ module.exports = { return res; }, - delete_meta: 'post', + delete_meta: true, async delete(connection) { if (portalConnections) return; const res = await this.datastore.remove(_.pick(connection, '_id')); @@ -193,14 +193,14 @@ module.exports = { return res; }, - get_meta: 'get', + get_meta: true, async get({ conid }) { if (portalConnections) return portalConnections.find(x => x._id == conid); const res = await this.datastore.find({ _id: conid }); return res[0]; }, - newSqliteDatabase_meta: 'post', + newSqliteDatabase_meta: true, async newSqliteDatabase({ file }) { const sqliteDir = path.join(filesdir(), 'sqlite'); if (!(await fs.exists(sqliteDir))) { diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index 1cefe04cc..ecd4dcb9a 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -121,7 +121,7 @@ module.exports = { return promise; }, - queryData_meta: 'post', + queryData_meta: true, async queryData({ conid, database, sql }) { console.log(`Processing query, conid=${conid}, database=${database}, sql=${sql}`); const opened = await this.ensureOpened(conid, database); @@ -132,7 +132,7 @@ module.exports = { return res; }, - runScript_meta: 'post', + runScript_meta: true, async runScript({ conid, database, sql }) { console.log(`Processing script, conid=${conid}, database=${database}, sql=${sql}`); const opened = await this.ensureOpened(conid, database); @@ -140,21 +140,21 @@ module.exports = { return res; }, - collectionData_meta: 'post', + collectionData_meta: true, async collectionData({ conid, database, options }) { const opened = await this.ensureOpened(conid, database); const res = await this.sendRequest(opened, { msgtype: 'collectionData', options }); return res.result; }, - updateCollection_meta: 'post', + updateCollection_meta: true, async updateCollection({ conid, database, changeSet }) { const opened = await this.ensureOpened(conid, database); const res = await this.sendRequest(opened, { msgtype: 'updateCollection', changeSet }); return res.result; }, - status_meta: 'get', + status_meta: true, async status({ conid, database }) { const existing = this.opened.find(x => x.conid == conid && x.database == database); if (existing) { @@ -176,7 +176,7 @@ module.exports = { }; }, - ping_meta: 'post', + ping_meta: true, async ping({ conid, database }) { let existing = this.opened.find(x => x.conid == conid && x.database == database); @@ -192,7 +192,7 @@ module.exports = { }; }, - refresh_meta: 'post', + refresh_meta: true, async refresh({ conid, database, keepOpen }) { if (!keepOpen) this.close(conid, database); @@ -200,7 +200,7 @@ module.exports = { return { status: 'ok' }; }, - syncModel_meta: 'post', + syncModel_meta: true, async syncModel({ conid, database }) { const conn = await this.ensureOpened(conid, database); conn.subprocess.send({ msgtype: 'syncModel' }); @@ -224,13 +224,13 @@ module.exports = { } }, - disconnect_meta: 'post', + disconnect_meta: true, async disconnect({ conid, database }) { await this.close(conid, database, true); return { status: 'ok' }; }, - structure_meta: 'get', + structure_meta: true, async structure({ conid, database }) { if (conid == '__model') { const model = await importDbModel(database); @@ -247,13 +247,13 @@ module.exports = { // }; }, - serverVersion_meta: 'get', + serverVersion_meta: true, async serverVersion({ conid, database }) { const opened = await this.ensureOpened(conid, database); return opened.serverVersion; }, - sqlPreview_meta: 'post', + sqlPreview_meta: true, async sqlPreview({ conid, database, objects, options }) { // wait for structure await this.structure({ conid, database }); @@ -263,7 +263,7 @@ module.exports = { return res; }, - exportModel_meta: 'post', + exportModel_meta: true, async exportModel({ conid, database }) { const archiveFolder = await archive.getNewArchiveFolder({ database }); await fs.mkdir(path.join(archivedir(), archiveFolder)); @@ -273,7 +273,7 @@ module.exports = { return { archiveFolder }; }, - generateDeploySql_meta: 'post', + generateDeploySql_meta: true, async generateDeploySql({ conid, database, archiveFolder }) { const opened = await this.ensureOpened(conid, database); const res = await this.sendRequest(opened, { msgtype: 'generateDeploySql', modelFolder: resolveArchiveFolder(archiveFolder) }); @@ -300,7 +300,7 @@ module.exports = { // }; // return sql; }, - // runCommand_meta: 'post', + // runCommand_meta: true, // async runCommand({ conid, database, sql }) { // console.log(`Running SQL command , conid=${conid}, database=${database}, sql=${sql}`); // const opened = await this.ensureOpened(conid, database); @@ -343,7 +343,7 @@ module.exports = { return res; }, - generateDbDiffReport_meta: 'post', + generateDbDiffReport_meta: true, async generateDbDiffReport({ filePath, sourceConid, sourceDatabase, targetConid, targetDatabase }) { const unifiedDiff = await this.getUnifiedDiff({ sourceConid, sourceDatabase, targetConid, targetDatabase }); diff --git a/packages/api/src/controllers/files.js b/packages/api/src/controllers/files.js index 1b14e58aa..225005bad 100644 --- a/packages/api/src/controllers/files.js +++ b/packages/api/src/controllers/files.js @@ -20,7 +20,7 @@ function deserialize(format, text) { } module.exports = { - list_meta: 'get', + list_meta: true, async list({ folder }) { if (!hasPermission(`files/${folder}/read`)) return []; const dir = path.join(filesdir(), folder); @@ -29,7 +29,7 @@ module.exports = { return files; }, - listAll_meta: 'get', + listAll_meta: true, async listAll() { const folders = await fs.readdir(filesdir()); const res = []; @@ -42,7 +42,7 @@ module.exports = { return res; }, - delete_meta: 'post', + delete_meta: true, async delete({ folder, file }) { if (!hasPermission(`files/${folder}/write`)) return; await fs.unlink(path.join(filesdir(), folder, file)); @@ -50,7 +50,7 @@ module.exports = { socket.emitChanged(`all-files-changed`); }, - rename_meta: 'post', + rename_meta: true, async rename({ folder, file, newFile }) { if (!hasPermission(`files/${folder}/write`)) return; await fs.rename(path.join(filesdir(), folder, file), path.join(filesdir(), folder, newFile)); @@ -58,7 +58,7 @@ module.exports = { socket.emitChanged(`all-files-changed`); }, - copy_meta: 'post', + copy_meta: true, async copy({ folder, file, newFile }) { if (!hasPermission(`files/${folder}/write`)) return; await fs.copyFile(path.join(filesdir(), folder, file), path.join(filesdir(), folder, newFile)); @@ -66,7 +66,7 @@ module.exports = { socket.emitChanged(`all-files-changed`); }, - load_meta: 'post', + load_meta: true, async load({ folder, file, format }) { if (folder.startsWith('archive:')) { const text = await fs.readFile(path.join(resolveArchiveFolder(folder.substring('archive:'.length)), file), { @@ -80,7 +80,7 @@ module.exports = { } }, - save_meta: 'post', + save_meta: true, async save({ folder, file, data, format }) { if (folder.startsWith('archive:')) { const dir = resolveArchiveFolder(folder.substring('archive:'.length)); @@ -101,12 +101,12 @@ module.exports = { } }, - saveAs_meta: 'post', + saveAs_meta: true, async saveAs({ filePath, data, format }) { await fs.writeFile(filePath, serialize(format, data)); }, - favorites_meta: 'get', + favorites_meta: true, async favorites() { if (!hasPermission(`files/favorites/read`)) return []; const dir = path.join(filesdir(), 'favorites'); @@ -125,7 +125,7 @@ module.exports = { return res; }, - generateUploadsFile_meta: 'get', + generateUploadsFile_meta: true, async generateUploadsFile() { const fileName = `${uuidv1()}.html`; return { @@ -134,7 +134,7 @@ module.exports = { }; }, - exportChart_meta: 'post', + exportChart_meta: true, async exportChart({ filePath, title, config, image }) { const fileName = path.parse(filePath).base; const imageFile = fileName.replace('.html', '-preview.png'); diff --git a/packages/api/src/controllers/jsldata.js b/packages/api/src/controllers/jsldata.js index 84ce60e5f..3a0480bea 100644 --- a/packages/api/src/controllers/jsldata.js +++ b/packages/api/src/controllers/jsldata.js @@ -104,7 +104,7 @@ module.exports = { return datastore; }, - getInfo_meta: 'get', + getInfo_meta: true, async getInfo({ jslid }) { const file = getJslFileName(jslid); const firstLine = await readFirstLine(file); @@ -112,13 +112,13 @@ module.exports = { return null; }, - getRows_meta: 'post', + getRows_meta: true, async getRows({ jslid, offset, limit, filters }) { const datastore = await this.ensureDatastore(jslid); return datastore.getRows(offset, limit, _.isEmpty(filters) ? null : filters); }, - getStats_meta: 'get', + getStats_meta: true, getStats({ jslid }) { const file = `${getJslFileName(jslid)}.stats`; if (fs.existsSync(file)) { @@ -146,7 +146,7 @@ module.exports = { // } }, - saveFreeTable_meta: 'post', + saveFreeTable_meta: true, async saveFreeTable({ jslid, data }) { saveFreeTableData(getJslFileName(jslid), data); return true; diff --git a/packages/api/src/controllers/metadata.js b/packages/api/src/controllers/metadata.js index 961d749cb..74e0a528a 100644 --- a/packages/api/src/controllers/metadata.js +++ b/packages/api/src/controllers/metadata.js @@ -7,14 +7,14 @@ function pickObjectNames(array) { } module.exports = { - // tableData_meta: 'get', + // tableData_meta: true, // async tableData({ conid, database, schemaName, pureName }) { // const opened = await databaseConnections.ensureOpened(conid, database); // const res = await databaseConnections.sendRequest(opened, { msgtype: 'tableData', schemaName, pureName }); // return res; // }, - listObjects_meta: 'get', + listObjects_meta: true, async listObjects({ conid, database }) { const opened = await databaseConnections.ensureOpened(conid, database); const types = ['tables', 'collections', 'views', 'procedures', 'functions', 'triggers']; @@ -27,7 +27,7 @@ module.exports = { ); }, - tableInfo_meta: 'get', + tableInfo_meta: true, async tableInfo({ conid, database, schemaName, pureName }) { const opened = await databaseConnections.ensureOpened(conid, database); const table = opened.structure.tables.find(x => x.pureName == pureName && x.schemaName == schemaName); @@ -38,7 +38,7 @@ module.exports = { }; }, - sqlObjectInfo_meta: 'get', + sqlObjectInfo_meta: true, async sqlObjectInfo({ objectTypeField, conid, database, schemaName, pureName }) { const opened = await databaseConnections.ensureOpened(conid, database); const res = opened.structure[objectTypeField].find(x => x.pureName == pureName && x.schemaName == schemaName); diff --git a/packages/api/src/controllers/plugins.js b/packages/api/src/controllers/plugins.js index c45545285..2e225f5f1 100644 --- a/packages/api/src/controllers/plugins.js +++ b/packages/api/src/controllers/plugins.js @@ -12,7 +12,7 @@ const _ = require('lodash'); const packagedPluginsContent = require('../packagedPluginsContent'); module.exports = { - script_meta: 'get', + script_meta: true, async script({ packageName }) { const packagedContent = packagedPluginsContent(); @@ -30,7 +30,7 @@ module.exports = { return data; }, - search_meta: 'get', + search_meta: true, async search({ filter }) { // DOCS: https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md#get-v1search const resp = await axios.default.get( @@ -40,7 +40,7 @@ module.exports = { return (objects || []).map(x => x.package); }, - info_meta: 'get', + info_meta: true, async info({ packageName }) { try { const infoResp = await axios.default.get(`https://registry.npmjs.org/${packageName}`); @@ -63,7 +63,7 @@ module.exports = { } }, - installed_meta: 'get', + installed_meta: true, async installed() { const packagedContent = packagedPluginsContent(); @@ -107,7 +107,7 @@ module.exports = { // await fs.writeFile(path.join(datadir(), 'removed-plugins'), this.removedPlugins.join('\n')); // }, - install_meta: 'post', + install_meta: true, async install({ packageName }) { if (!hasPermission(`plugins/install`)) return; const dir = path.join(pluginsdir(), packageName); @@ -120,7 +120,7 @@ module.exports = { // await this.saveRemovePlugins(); }, - uninstall_meta: 'post', + uninstall_meta: true, async uninstall({ packageName }) { if (!hasPermission(`plugins/install`)) return; const dir = path.join(pluginsdir(), packageName); @@ -130,7 +130,7 @@ module.exports = { await this.saveRemovePlugins(); }, - upgrade_meta: 'post', + upgrade_meta: true, async upgrade({ packageName }) { if (!hasPermission(`plugins/install`)) return; const dir = path.join(pluginsdir(), packageName); @@ -143,13 +143,13 @@ module.exports = { socket.emitChanged(`installed-plugins-changed`); }, - command_meta: 'post', + command_meta: true, async command({ packageName, command, args }) { const content = requirePlugin(packageName); return content.commands[command](args); }, - authTypes_meta: 'get', + authTypes_meta: true, async authTypes({ engine }) { const packageName = extractPackageName(engine); const content = requirePlugin(packageName); diff --git a/packages/api/src/controllers/queryHistory.js b/packages/api/src/controllers/queryHistory.js index 0cbb75e88..9d4c3eb09 100644 --- a/packages/api/src/controllers/queryHistory.js +++ b/packages/api/src/controllers/queryHistory.js @@ -34,7 +34,7 @@ function readCore(reader, skip, limit, filter) { } module.exports = { - read_meta: 'get', + read_meta: true, async read({ skip, limit, filter }) { const fileName = path.join(datadir(), 'query-history.jsonl'); // @ts-ignore @@ -44,7 +44,7 @@ module.exports = { return res; }, - write_meta: 'post', + write_meta: true, async write({ data }) { const fileName = path.join(datadir(), 'query-history.jsonl'); await fs.appendFile(fileName, JSON.stringify(data) + '\n'); diff --git a/packages/api/src/controllers/runners.js b/packages/api/src/controllers/runners.js index 627981d82..b0f123dd7 100644 --- a/packages/api/src/controllers/runners.js +++ b/packages/api/src/controllers/runners.js @@ -139,18 +139,18 @@ module.exports = { return newOpened; }, - start_meta: 'post', + start_meta: true, async start({ script }) { const runid = uuidv1(); return this.startCore(runid, scriptTemplate(script, false)); }, - getNodeScript_meta: 'post', + getNodeScript_meta: true, async getNodeScript({ script }) { return scriptTemplate(script, true); }, - cancel_meta: 'post', + cancel_meta: true, async cancel({ runid }) { const runner = this.opened.find(x => x.runid == runid); if (!runner) { @@ -160,7 +160,7 @@ module.exports = { return { state: 'ok' }; }, - files_meta: 'get', + files_meta: true, async files({ runid }) { const directory = path.join(rundir(), runid); const files = await fs.readdir(directory); @@ -176,7 +176,7 @@ module.exports = { return res; }, - loadReader_meta: 'post', + loadReader_meta: true, async loadReader({ functionName, props }) { const promise = new Promise((resolve, reject) => { const runid = uuidv1(); diff --git a/packages/api/src/controllers/serverConnections.js b/packages/api/src/controllers/serverConnections.js index 5ae4aa816..2afa9c416 100644 --- a/packages/api/src/controllers/serverConnections.js +++ b/packages/api/src/controllers/serverConnections.js @@ -86,25 +86,25 @@ module.exports = { } }, - disconnect_meta: 'post', + disconnect_meta: true, async disconnect({ conid }) { await this.close(conid, true); return { status: 'ok' }; }, - listDatabases_meta: 'get', + listDatabases_meta: true, async listDatabases({ conid }) { const opened = await this.ensureOpened(conid); return opened.databases; }, - version_meta: 'get', + version_meta: true, async version({ conid }) { const opened = await this.ensureOpened(conid); return opened.version; }, - serverStatus_meta: 'get', + serverStatus_meta: true, async serverStatus() { return { ...this.closed, @@ -112,7 +112,7 @@ module.exports = { }; }, - ping_meta: 'post', + ping_meta: true, async ping({ connections }) { await Promise.all( _.uniq(connections).map(async conid => { @@ -128,7 +128,7 @@ module.exports = { return { status: 'ok' }; }, - refresh_meta: 'post', + refresh_meta: true, async refresh({ conid, keepOpen }) { if (!keepOpen) this.close(conid); @@ -136,7 +136,7 @@ module.exports = { return { status: 'ok' }; }, - createDatabase_meta: 'post', + createDatabase_meta: true, async createDatabase({ conid, name }) { const opened = await this.ensureOpened(conid); opened.subprocess.send({ msgtype: 'createDatabase', name }); diff --git a/packages/api/src/controllers/sessions.js b/packages/api/src/controllers/sessions.js index cf066e5b2..9ca54d204 100644 --- a/packages/api/src/controllers/sessions.js +++ b/packages/api/src/controllers/sessions.js @@ -61,7 +61,7 @@ module.exports = { handle_ping() {}, - create_meta: 'post', + create_meta: true, async create({ conid, database }) { const sesid = uuidv1(); const connection = await connections.get({ conid }); @@ -84,7 +84,7 @@ module.exports = { return newOpened; }, - executeQuery_meta: 'post', + executeQuery_meta: true, async executeQuery({ sesid, sql }) { const session = this.opened.find(x => x.sesid == sesid); if (!session) { @@ -98,7 +98,7 @@ module.exports = { return { state: 'ok' }; }, - // cancel_meta: 'post', + // cancel_meta: true, // async cancel({ sesid }) { // const session = this.opened.find((x) => x.sesid == sesid); // if (!session) { @@ -108,7 +108,7 @@ module.exports = { // return { state: 'ok' }; // }, - kill_meta: 'post', + kill_meta: true, async kill({ sesid }) { const session = this.opened.find(x => x.sesid == sesid); if (!session) { @@ -119,7 +119,7 @@ module.exports = { return { state: 'ok' }; }, - // runCommand_meta: 'post', + // runCommand_meta: true, // async runCommand({ conid, database, sql }) { // console.log(`Running SQL command , conid=${conid}, database=${database}, sql=${sql}`); // const opened = await this.ensureOpened(conid, database); diff --git a/packages/api/src/utility/useController.js b/packages/api/src/utility/useController.js index 67e4cb41c..e8c85566a 100644 --- a/packages/api/src/utility/useController.js +++ b/packages/api/src/utility/useController.js @@ -23,13 +23,13 @@ module.exports = function useController(app, route, controller) { const meta = controller[`${key}_meta`]; if (!meta) continue; - let method = 'get'; + let method = 'post'; let raw = false; let rawParams = false; - if (_.isString(meta)) { - method = meta; - } + // if (_.isString(meta)) { + // method = meta; + // } if (_.isPlainObject(meta)) { method = meta.method; raw = meta.raw;