* feat: Cal.diy — community-driven MIT-licensed fork of Cal.com This squashed commit contains all Cal.diy changes applied on top of calcom/cal.com main: - Rebrand Cal.com to Cal.diy across the entire codebase - Remove Enterprise Edition (EE) features, license checks, and AGPL restrictions - Switch license from AGPL-3.0 to MIT - Remove docs/ directory (migrated to Nextra at cal.diy) - Remove dead code: org tests, EE tips, platform nav, premium username, SAML/SSO, etc. - Clean up .env.example for self-hosted Cal.diy - Update Docker image references to calcom/cal.diy - Update README, CONTRIBUTING.md, and issue templates for Cal.diy community fork - Add PR welcome bot for Cal.diy contributors - Fix API v2 breaking changes oasdiff ignore entries - Replace Blacksmith CI runners with default GitHub Actions 3893 files changed, 20789 insertions(+), 411020 deletions(-) Co-Authored-By: benny@cal.com <sldisek783@gmail.com> * refactor: remove org-specific /organizations/:orgId endpoints from API v2 atoms controllers (#1701) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix: revert Cal.diy Inc to Cal.com, Inc. in license files, copyright notices, and package metadata (#1702) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * rip out org related comments in api v2 --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
45 lines
2.1 KiB
TypeScript
45 lines
2.1 KiB
TypeScript
import type { PayloadBuilderFactory } from "@calcom/features/webhooks/lib/factory/versioned/PayloadBuilderFactory";
|
|
import type { IWebhookDataFetcher } from "@calcom/features/webhooks/lib/interface/IWebhookDataFetcher";
|
|
import type { IWebhookRepository } from "@calcom/features/webhooks/lib/interface/IWebhookRepository";
|
|
import type { ILogger } from "@calcom/features/webhooks/lib/interface/infrastructure";
|
|
import type { IWebhookService } from "@calcom/features/webhooks/lib/interface/services";
|
|
import { WebhookTaskConsumer } from "@calcom/features/webhooks/lib/service/WebhookTaskConsumer";
|
|
import type { ResolveFunction } from "@evyweb/ioctopus";
|
|
import { createModule, type Module } from "@evyweb/ioctopus";
|
|
import { SHARED_TOKENS } from "../../shared/shared.tokens";
|
|
import { WEBHOOK_TOKENS } from "../Webhooks.tokens";
|
|
|
|
/**
|
|
* Consumer Module
|
|
*
|
|
* Binds the heavy WebhookTaskConsumer.
|
|
* Dependencies: WebhookRepository, Data Fetchers (Strategy Pattern), PayloadBuilderFactory, WebhookService, Logger
|
|
*
|
|
* Uses Strategy Pattern for data fetching and proper DI for HTTP delivery via WebhookService.
|
|
*/
|
|
const webhookTaskConsumerModule: Module = createModule();
|
|
|
|
webhookTaskConsumerModule.bind(WEBHOOK_TOKENS.WEBHOOK_TASK_CONSUMER).toFactory((resolve: ResolveFunction) => {
|
|
const webhookRepository = resolve(WEBHOOK_TOKENS.WEBHOOK_REPOSITORY) as IWebhookRepository;
|
|
const dataFetchers: IWebhookDataFetcher[] = [
|
|
resolve(WEBHOOK_TOKENS.BOOKING_DATA_FETCHER) as IWebhookDataFetcher,
|
|
resolve(WEBHOOK_TOKENS.PAYMENT_DATA_FETCHER) as IWebhookDataFetcher,
|
|
resolve(WEBHOOK_TOKENS.RECORDING_DATA_FETCHER) as IWebhookDataFetcher,
|
|
resolve(WEBHOOK_TOKENS.OOO_DATA_FETCHER) as IWebhookDataFetcher,
|
|
];
|
|
const payloadBuilderFactory: PayloadBuilderFactory = resolve(
|
|
WEBHOOK_TOKENS.PAYLOAD_BUILDER_FACTORY
|
|
) as PayloadBuilderFactory;
|
|
const webhookService: IWebhookService = resolve(WEBHOOK_TOKENS.WEBHOOK_SERVICE) as IWebhookService;
|
|
const logger = resolve(SHARED_TOKENS.LOGGER) as ILogger;
|
|
|
|
return new WebhookTaskConsumer(
|
|
webhookRepository,
|
|
dataFetchers,
|
|
payloadBuilderFactory,
|
|
webhookService,
|
|
logger
|
|
);
|
|
});
|
|
export { webhookTaskConsumerModule };
|