Skip to content

Instantly share code, notes, and snippets.

@ms314006
Last active January 29, 2023 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ms314006/eddfbcd633f2417e516bbc558516ac32 to your computer and use it in GitHub Desktop.
Save ms314006/eddfbcd633f2417e516bbc558516ac32 to your computer and use it in GitHub Desktop.
import SuccessTransaction from './SuccessTransaction';
import FailTransaction from './FailTransaction';
import PendingTransaction from './PendingTransaction';
class Transaction {
constructor(transaction) {
this.id = transaction.id;
this.transactionStatusDelegate = this.getTransactionStatusDelegate(transaction);
}
getTransactionStatusDelegate(transaction) {
switch (transaction.status) {
case 'SUCCESS':
return new SuccessTransaction(transaction);
case 'FAIL':
return new FailTransaction(transaction);
case 'PENDING':
return new PendingTransaction(transaction);
default:
throw new Error(`Have no transaction status: ${transaction.status}`);
}
}
}
export default Transaction;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment