ex-banking
v1.0.1
Published
An example banking app public api written in typescript
Downloads
5
Readme
ExBanking :bank:
ExBanking is a minimal public facing interface of a banking application written in Typescript
Installation
This package requires Node.js v12+
.
To install, run npm install ex-banking
Usage
Initializing with Typescript
import ExBanking from 'ex-banking'
const exBanking = new ExBanking();
Initializing with Javascript
var ExBanking = require('ex-banking').default;
const exBanking = new ExBanking();
Creating users
New users can be created by calling the createUser
function. This will also create an empty wallet for the user.
const response = exBanking.createUser('peeter')
// response = { success: true }
Deposits
Money deposits can be made into a user's wallet for a given currency.
- If the currency does not exist, a new currency is created.
- If the user has no wallet in such currency, a new wallet in that currency is created for the user.
const response = exBanking.deposit('peeter', 200, 'EUR');
// response = { success: true, newBalance: 200 }
Withdrawals
Withdrawals can be made on a user's wallet.
- The user must have a wallet in that currency
- The wallet balance must be at least the amount specified for withdrawal
const response = exBanking.withdraw('peeter', 200, 'EUR');
// response = { success: true, newBalance: 0 }
Wallet balance
- The user must have a wallet in that currency
const response = exBanking.getBalance('peeter', 'EUR');
// response = { success: true, balance: 500 }
Transfers
A user can send money from their wallet to another user.
- Both the sender and receiver must exist
- The sender must have sufficient balance in the specified currency
- If the receiver has no wallet in the specified currency, a new wallet will be created for the user in that currency.
const response = exBanking.send('peeter', 'olga', 400, 'EUR');
// response = { success: true, fromUsernameBalance: 100, toUsernameBalance: 400 }
Application error
A typical error would be returned in the following format;
{
success: false,
code: ***,
message: 'An error occurred',
}
// Error codes
// 1 -> Wrong argument
// 2 -> User already exists
// 3 -> User does not exist
// 4 -> Not enough money
// 5 -> Sender does not exist
// 6 -> Receiver does not exist
Build
npm run build
Test
npm run test