UNPKG

@grouparoo/core

Version:
69 lines (68 loc) 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImportView = exports.ImportsList = void 0; const GrouparooRecord_1 = require("../models/GrouparooRecord"); const authenticatedAction_1 = require("../classes/actions/authenticatedAction"); const Import_1 = require("../models/Import"); const apiData_1 = require("../modules/apiData"); class ImportsList extends authenticatedAction_1.AuthenticatedAction { constructor() { super(...arguments); this.name = "imports:list"; this.description = "list imports"; this.outputExample = {}; this.permission = { topic: "import", mode: "read" }; this.inputs = { creatorId: { required: false }, recordId: { required: false }, limit: { required: true, default: 100, formatter: apiData_1.APIData.ensureNumber }, offset: { required: true, default: 0, formatter: apiData_1.APIData.ensureNumber }, state: { required: false }, order: { required: false, formatter: apiData_1.APIData.ensureArray, default: [["createdAt", "desc"]], }, }; } async runWithinTransaction({ params }) { const where = {}; if (params.creatorId) where["creatorId"] = params.creatorId; if (params.recordId) where["recordId"] = params.recordId; if (params.state) where["state"] = params.state; const search = { include: [GrouparooRecord_1.GrouparooRecord], where, limit: params.limit, offset: params.offset, order: params.order, }; const total = await Import_1.Import.count({ where }); const imports = await Import_1.Import.findAll(search); return { total, imports: await Promise.all(imports.map((i) => i.apiData())), }; } } exports.ImportsList = ImportsList; class ImportView extends authenticatedAction_1.AuthenticatedAction { constructor() { super(...arguments); this.name = "import:view"; this.description = "view an import"; this.outputExample = {}; this.permission = { topic: "import", mode: "read" }; this.inputs = { id: { required: true }, }; } async runWithinTransaction({ params }) { const _import = await Import_1.Import.findById(params.id); return { import: await _import.apiData() }; } } exports.ImportView = ImportView;