mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 13:06:01 +00:00
controllers are all POST
This commit is contained in:
@@ -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`));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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))) {
|
||||
|
||||
@@ -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 });
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 });
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user