Skip to content
← Public packages

@kentcdodds/paypal

PayPal helpers for invoices, sending invoices, transactions, and reimbursements.

src/index.ts

74 lines · 2.0 KB · TypeScript
export {
	createInvoice,
	findInvoice,
	getInvoice,
	listInvoices,
	searchInvoices,
	searchInvoicesForReimbursement,
	sendInvoice,
	summarizeInvoice,
} from './invoices.ts'
export { findTransaction, listTransactions, searchTransactions } from './transactions.ts'
export { smokeTest } from './smoke-test.ts'
export { paypalListBalances } from './paypal-core.ts'
export {
	balancesGet,
	invoicesCreate,
	invoicesGet,
	invoicesList,
	invoicesSearchInvoices,
	invoicesSend,
	searchGet,
} from './openapi-client.ts'

import {
	createInvoice,
	findInvoice,
	getInvoice,
	listInvoices,
	searchInvoices,
	searchInvoicesForReimbursement,
	sendInvoice,
	summarizeInvoice,
} from './invoices.ts'
import { findTransaction, listTransactions, searchTransactions } from './transactions.ts'
import { paypalListBalances } from './paypal-core.ts'
import { smokeTest } from './smoke-test.ts'

/**
 * Root dispatcher for PayPal read-only utilities. Defaults to smoke-test.
 */
export default async function paypal(input: Record<string, unknown> = {}) {
	const action = String(input.action ?? 'smoke-test')
	switch (action) {
		case 'smoke-test':
			return await smokeTest(input)
		case 'list-invoices':
			return await listInvoices(input)
		case 'get-invoice':
			return await getInvoice(input as never)
		case 'search-invoices':
			return await searchInvoices(input)
		case 'find-invoice':
			return await findInvoice(input)
		case 'summarize-invoice':
			return await summarizeInvoice(input)
		case 'search-reimbursement':
		case 'search-invoices-for-reimbursement':
			return await searchInvoicesForReimbursement(input)
		case 'list-transactions':
			return await listTransactions(input as never)
		case 'search-transactions':
			return await searchTransactions(input)
		case 'find-transaction':
			return await findTransaction(input)
		case 'list-balances':
			return await paypalListBalances(input)
		case 'create-invoice':
			return await createInvoice(input as never)
		case 'send-invoice':
			return await sendInvoice(input as never)
		default:
			throw new Error('Unknown PayPal action: ' + action)
	}
}