doripe
v2.4.0
Published
A lightweight utility for managing payment transactions with automatic unique ID generation
Maintainers
Readme
doripe
A lightweight utility for managing payment transactions with automatic unique ID generation and MongoDB storage.
Installation
npm install doripeUsage
In Node.js
const { createTransaction, PaymentMethod, TransactionType } = require('doripe');
// Or with ES6 imports
// import { createTransaction, PaymentMethod, TransactionType } from 'doripe';
const transactionData = {
orderId: 'order_123',
merchantId: 'merchant_456',
amount: 100.50,
paymentMethod: PaymentMethod.CREDIT_CARD,
currency: 'USD',
type: TransactionType.PAYMENT
};
try {
const transaction = createTransaction(transactionData);
console.log('Transaction created:', transaction);
} catch (error) {
console.error('Error creating transaction:', error.message);
}Then use the MongoDB functions:
const { createAndSaveTransaction, findTransactionByPaymentId, connectToDatabase } = require('doripe');
async function example() {
try {
// Connect to database
await connectToDatabase();
// Create and save a transaction
const transactionData = {
orderId: 'order_123',
merchantId: 'merchant_456',
amount: 100.50,
paymentMethod: PaymentMethod.CREDIT_CARD
};
const savedTransaction = await createAndSaveTransaction(transactionData);
console.log('Transaction saved:', savedTransaction);
// Find transaction by payment ID
const foundTransaction = await findTransactionByPaymentId(savedTransaction.paymentId);
console.log('Transaction found:', foundTransaction);
} catch (error) {
console.error('Error:', error.message);
}
}The package automatically detects the environment and only loads MongoDB dependencies in Node.js environments.
API
Functions
generateUniquePaymentId()
Generates a unique payment ID with the format pay_[24-character UUID].
generateUniquePaymentIntentId()
Generates a unique payment intent ID with the format pi_[24-character UUID].
createTransaction(data: TransactionData)
Creates a transaction object with unique IDs. Validates required fields and returns a CreatedTransaction object.
Required fields:
orderId: stringmerchantId: stringamount: number (must be positive)paymentMethod: PaymentMethod
createAndSaveTransaction(data: TransactionData)
Creates a transaction and saves it to MongoDB. Returns a StoredTransaction object.
findTransactionByPaymentId(paymentId: string)
Finds a transaction by its payment ID in MongoDB.
findTransactionsByMerchantId(merchantId: string)
Finds all transactions for a specific merchant ID.
findTransactionsByOrderId(orderId: string)
Finds all transactions for a specific order ID.
updateTransaction(paymentId: string, updates: Partial<TransactionData>)
Updates a transaction in MongoDB.
deleteTransaction(paymentId: string)
Deletes a transaction from MongoDB.
getAllTransactions(filter?: Partial<TransactionData>, limit?: number, skip?: number)
Gets all transactions with optional filtering, limit, and skip parameters.
connectToDatabase(uri?: string, dbName?: string)
Connects to MongoDB. Optionally accepts a URI and database name.
closeDatabase()
Closes the MongoDB connection.
Enums
PaymentMethod
CREDIT_CARDDEBIT_CARDPAYPALBANK_TRANSFERAPPLE_PAYGOOGLE_PAY
TransactionType
PAYMENTREFUNDSUBSCRIPTION
Interfaces
TransactionData
Represents the data needed to create a transaction.
CreatedTransaction
Extends TransactionData with generated paymentId and paymentIntentId.
StoredTransaction
Extends CreatedTransaction with MongoDB _id field.
