controllers are all POST

This commit is contained in:
Jan Prochazka
2021-12-22 09:18:48 +01:00
parent a108fb749a
commit f0e0fb8f64
13 changed files with 91 additions and 91 deletions

View File

@@ -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`));

View File

@@ -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;

View File

@@ -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))) {

View File

@@ -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 });

View File

@@ -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');

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);

View File

@@ -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');

View File

@@ -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();

View File

@@ -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 });

View File

@@ -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);