UNPKG

@grouparoo/core

Version:
51 lines (50 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectFind = void 0; const sequelize_1 = require("sequelize"); const actionhero_1 = require("actionhero"); const authenticatedAction_1 = require("../classes/actions/authenticatedAction"); class ObjectFind extends authenticatedAction_1.AuthenticatedAction { constructor() { super(...arguments); this.name = "object:find"; this.description = "find an object by id"; this.outputExample = {}; this.permission = { topic: "*", mode: "read" }; this.inputs = { id: { required: true }, }; } async runWithinTransaction({ params }) { const tables = [ "apiKeys", "apps", "destinations", "exports", "files", "groups", "imports", "models", "notifications", "records", "properties", "runs", "schedules", "settings", "sources", "teams", "teamMembers", ]; const id = params.id.replace(/[^a-zA-Z0-9-_\/.]/g, ""); const query = `SELECT id, "tableName" FROM (` + tables .map((t) => `SELECT id, '${t}' AS "tableName" FROM "${t}"`) .join(" UNION ALL ") + `) AS UNIONS WHERE id = '${id}'`; const records = await actionhero_1.api.sequelize.query(query, { type: sequelize_1.QueryTypes.SELECT, }); return { id, records }; } } exports.ObjectFind = ObjectFind;