This repository has been archived on 2022-08-14. You can view files and clone it, but cannot push or open issues or pull requests.
outline/server/commands/revisionCreator.js
Tom Moor 8884da8a4b
feat: Add revisionCreator command (#2321)
add revisions.create event
2021-07-15 12:26:43 -07:00

44 lines
842 B
JavaScript

// @flow
import { Document, User, Event, Revision } from "../models";
import { sequelize } from "../sequelize";
export default async function revisionCreator({
document,
user,
ip,
}: {
document: Document,
user: User,
ip?: string,
}) {
let transaction;
try {
transaction = await sequelize.transaction();
const revision = await Revision.createFromDocument(document, {
transaction,
});
await Event.create(
{
name: "revisions.create",
documentId: document.id,
modelId: revision.id,
teamId: document.teamId,
actorId: user.id,
ip: ip || user.lastActiveIp,
},
{ transaction }
);
await transaction.commit();
return revision;
} catch (err) {
if (transaction) {
await transaction.rollback();
}
throw err;
}
}