Move bulk of webhook logic to plugin (#4866)
* Move bulk of webhook logic to plugin * Re-enable cleanup task * cron tasks
This commit is contained in:
38
plugins/webhooks/server/presenters/webhook.ts
Normal file
38
plugins/webhooks/server/presenters/webhook.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { WebhookDelivery } from "@server/models";
|
||||
import { Event } from "@server/types";
|
||||
|
||||
export interface WebhookPayload {
|
||||
model: Record<string, unknown> | null;
|
||||
id: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
interface WebhookProps {
|
||||
event: Event;
|
||||
delivery: WebhookDelivery;
|
||||
payload: WebhookPayload;
|
||||
}
|
||||
|
||||
export interface WebhookPresentation {
|
||||
id: string;
|
||||
actorId: string;
|
||||
webhookSubscriptionId: string;
|
||||
event: string;
|
||||
payload: WebhookPayload;
|
||||
createdAt: Date;
|
||||
}
|
||||
|
||||
export default function presentWebhook({
|
||||
event,
|
||||
delivery,
|
||||
payload,
|
||||
}: WebhookProps): WebhookPresentation {
|
||||
return {
|
||||
id: delivery.id,
|
||||
actorId: event.actorId,
|
||||
webhookSubscriptionId: delivery.webhookSubscriptionId,
|
||||
createdAt: delivery.createdAt,
|
||||
event: event.name,
|
||||
payload,
|
||||
};
|
||||
}
|
||||
16
plugins/webhooks/server/presenters/webhookSubscription.ts
Normal file
16
plugins/webhooks/server/presenters/webhookSubscription.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { WebhookSubscription } from "@server/models";
|
||||
|
||||
export default function presentWebhookSubscription(
|
||||
webhook: WebhookSubscription
|
||||
) {
|
||||
return {
|
||||
id: webhook.id,
|
||||
name: webhook.name,
|
||||
url: webhook.url,
|
||||
secret: webhook.secret,
|
||||
events: webhook.events,
|
||||
enabled: webhook.enabled,
|
||||
createdAt: webhook.createdAt,
|
||||
updatedAt: webhook.updatedAt,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user