diff --git a/backend/src/utils/payment/resolveAtomicToCryptoConverter.ts b/backend/src/utils/payment/resolveAtomicToCryptoConverter.ts new file mode 100644 index 0000000..96ce90e --- /dev/null +++ b/backend/src/utils/payment/resolveAtomicToCryptoConverter.ts @@ -0,0 +1,16 @@ +import { InternalServerErrorException } from '@nestjs/common'; +import { PaymentMethod } from '../../modules/payment/types/PaymentMethod'; +import type { CryptoAtomicConverter } from '../../types/CryptoAtomicConverter'; +import { convertBtcAtomicToBtc } from '../bitcoin/convertBtcAtomicToBtc'; +import { convertXmrAtomicToXmr } from '../monero/convertXmrAtomicToXmr'; + +export const resolveAtomicToCryptoConverter = (paymentMethod: PaymentMethod): CryptoAtomicConverter => { + switch (paymentMethod) { + case PaymentMethod.Xmr: + return convertXmrAtomicToXmr; + case PaymentMethod.Btc: + return convertBtcAtomicToBtc; + default: + throw new InternalServerErrorException(`Unsupported payment method: ${String(paymentMethod)}`); + } +};