Fixed 267U.pre2
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import { Webhooks } from "../models/index.js";
|
||||
import { subscriber } from "../db/redis.js";
|
||||
let webhooksFetched = false;
|
||||
let webhooks = [];
|
||||
export async function getActiveWebhooks() {
|
||||
if (!webhooksFetched) {
|
||||
webhooks = await Webhooks.findBy({
|
||||
active: true
|
||||
});
|
||||
webhooksFetched = true;
|
||||
}
|
||||
return webhooks;
|
||||
}
|
||||
subscriber.on("message", async (_, data)=>{
|
||||
const obj = JSON.parse(data);
|
||||
if (obj.channel === "internal") {
|
||||
const { type, body } = obj.message;
|
||||
switch(type){
|
||||
case "webhookCreated":
|
||||
if (body.active) {
|
||||
webhooks.push(body);
|
||||
}
|
||||
break;
|
||||
case "webhookUpdated":
|
||||
if (body.active) {
|
||||
const i = webhooks.findIndex((a)=>a.id === body.id);
|
||||
if (i > -1) {
|
||||
webhooks[i] = body;
|
||||
} else {
|
||||
webhooks.push(body);
|
||||
}
|
||||
} else {
|
||||
webhooks = webhooks.filter((a)=>a.id !== body.id);
|
||||
}
|
||||
break;
|
||||
case "webhookDeleted":
|
||||
webhooks = webhooks.filter((a)=>a.id !== body.id);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user