You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Both the PayPal and Adyen payment integrations are fully implemented but are never used in production. Neither payment processor is actually connected to the running application. Removing them cleans up significant dead code and an unused npm dependency.
Note: This issue is largely superseded by #277 (remove entire credits system), which covers a broader scope including these payment services.
Scope of Dead Code
Providers layer
packages/providers/src/services/AdyenPaymentService.ts — full Adyen checkout implementation using @adyen/api-library
packages/providers/src/services/PaypalPaymentService.ts — full PayPal order + webhook validation implementation
packages/providers/src/services/PaypalPaymentServiceTypes.ts — PayPal type definitions
packages/providers/src/services/AdyenPaymentService.test.ts — tests for dead code
packages/providers/src/services/PaypalPaymentService.test.ts — tests for dead code
Exports in packages/providers/src/services/index.ts
@adyen/api-library npm dependency in packages/providers/package.json
Entrypoints layer
packages/entrypoints/src/http/middlewares/adyenMiddleware.ts — registerAdyenMiddleware is defined but never called
packages/entrypoints/src/http/middlewares/paypalMiddleware.ts — registerPaypalMiddleware is defined but never called
The following core interfaces and use cases were introduced solely to support these payment providers. They should be removed only if no other active payment service is planned:
⚠️Migrations are append-only — never delete existing migration files.
The credit_orders table created by migrations/20250411154322_purchase_order_table.ts should be dropped by creating a new migration file (e.g. migrations/YYYYMMDDHHMMSS_drop_credit_orders.ts).
Fix
Delete all PayPal and Adyen provider files listed above
Remove @adyen/api-library from packages/providers/package.json
Delete the two webhook middleware files from entrypoints
Remove the PayPalOrderApprovedWebhookPayload.ts type file
Remove PayPal/Adyen instantiation and imports from discordBot.ts
Evaluate and remove core payment interfaces/use cases if no replacement payment provider is planned
Create a new migration to drop the credit_orders table (do NOT delete the old migration)
Run npm install to update lockfile after package removal
Problem
Both the PayPal and Adyen payment integrations are fully implemented but are never used in production. Neither payment processor is actually connected to the running application. Removing them cleans up significant dead code and an unused npm dependency.
Note: This issue is largely superseded by #277 (remove entire credits system), which covers a broader scope including these payment services.
Scope of Dead Code
Providers layer
packages/providers/src/services/AdyenPaymentService.ts— full Adyen checkout implementation using@adyen/api-librarypackages/providers/src/services/PaypalPaymentService.ts— full PayPal order + webhook validation implementationpackages/providers/src/services/PaypalPaymentServiceTypes.ts— PayPal type definitionspackages/providers/src/services/AdyenPaymentService.test.ts— tests for dead codepackages/providers/src/services/PaypalPaymentService.test.ts— tests for dead codepackages/providers/src/services/index.ts@adyen/api-librarynpm dependency inpackages/providers/package.jsonEntrypoints layer
packages/entrypoints/src/http/middlewares/adyenMiddleware.ts—registerAdyenMiddlewareis defined but never calledpackages/entrypoints/src/http/middlewares/paypalMiddleware.ts—registerPaypalMiddlewareis defined but never calledpackages/entrypoints/src/http/middlewares/PayPalOrderApprovedWebhookPayload.ts— PayPal webhook typespackages/entrypoints/src/discordBot.ts(lines 113–123):adyenPaymentServiceis passed toCreateCreditsPurchaseOrder(line 197) which is also part of the deadBuyCreditsflow (see [Tech Debt] Remove dead code: BuyCredits command #267)Core layer (to evaluate)
The following core interfaces and use cases were introduced solely to support these payment providers. They should be removed only if no other active payment service is planned:
packages/core/src/services/PaymentService.ts(interface)packages/core/src/usecase/CreateCreditsPurchaseOrder.ts+ its testpackages/core/src/usecase/HandleOrderPaid.ts+ its testpackages/core/src/repository/CreditOrdersRepository.tspackages/core/src/domain/CreditOrder.tspackages/core/src/domain/CreditOrderRequest.tspackages/providers/src/repository/SQliteCreditOrdersRepository.tsMigrations
The
credit_orderstable created bymigrations/20250411154322_purchase_order_table.tsshould be dropped by creating a new migration file (e.g.migrations/YYYYMMDDHHMMSS_drop_credit_orders.ts).Fix
@adyen/api-libraryfrompackages/providers/package.jsonPayPalOrderApprovedWebhookPayload.tstype filediscordBot.tscredit_orderstable (do NOT delete the old migration)npm installto update lockfile after package removal