@grouparoo/core
Version:
The Grouparoo Core
69 lines (68 loc) • 2.57 kB
JavaScript
;
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;