Files
outline/server/queues/processors/UserDeletedProcessor.ts
Tom Moor 67a6b3fe43 fix: Cleanup relationships when user is deleted (#6343)
* fix: Cleanup relationships when user is deleted

* Update tests

* Update User.test.ts
2024-01-03 06:14:10 -08:00

57 lines
1.2 KiB
TypeScript

import {
ApiKey,
GroupUser,
Star,
Subscription,
UserAuthentication,
UserPermission,
} from "@server/models";
import { sequelize } from "@server/storage/database";
import { Event as TEvent, UserEvent } from "@server/types";
import BaseProcessor from "./BaseProcessor";
export default class UsersDeletedProcessor extends BaseProcessor {
static applicableEvents: TEvent["name"][] = ["users.delete"];
async perform(event: UserEvent) {
await sequelize.transaction(async (transaction) => {
await GroupUser.destroy({
where: {
userId: event.userId,
},
transaction,
});
await UserAuthentication.destroy({
where: {
userId: event.userId,
},
transaction,
});
await UserPermission.destroy({
where: {
userId: event.userId,
},
transaction,
});
await Subscription.destroy({
where: {
userId: event.userId,
},
transaction,
});
await ApiKey.destroy({
where: {
userId: event.userId,
},
transaction,
});
await Star.destroy({
where: {
userId: event.userId,
},
transaction,
});
});
}
}