Github integration (#6414)
Co-authored-by: Tom Moor <tom.moor@gmail.com>
This commit is contained in:
34
server/queues/processors/IntegrationDeletedProcessor.ts
Normal file
34
server/queues/processors/IntegrationDeletedProcessor.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { IntegrationType } from "@shared/types";
|
||||
import { Integration } from "@server/models";
|
||||
import BaseProcessor from "@server/queues/processors/BaseProcessor";
|
||||
import { IntegrationEvent, Event } from "@server/types";
|
||||
import { CacheHelper } from "@server/utils/CacheHelper";
|
||||
import { Hook, PluginManager } from "@server/utils/PluginManager";
|
||||
|
||||
export default class IntegrationDeletedProcessor extends BaseProcessor {
|
||||
static applicableEvents: Event["name"][] = ["integrations.delete"];
|
||||
|
||||
async perform(event: IntegrationEvent) {
|
||||
const integration = await Integration.findOne({
|
||||
where: {
|
||||
id: event.modelId,
|
||||
},
|
||||
paranoid: false,
|
||||
});
|
||||
if (!integration) {
|
||||
return;
|
||||
}
|
||||
|
||||
const uninstallHooks = PluginManager.getHooks(Hook.Uninstall);
|
||||
for (const hook of uninstallHooks) {
|
||||
await hook.value(integration);
|
||||
}
|
||||
|
||||
// Clear the cache of unfurled data for the team as it may be stale now.
|
||||
if (integration.type === IntegrationType.Embed) {
|
||||
await CacheHelper.clearData(CacheHelper.getUnfurlKey(integration.teamId));
|
||||
}
|
||||
|
||||
await integration.destroy({ force: true });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user