1.0.1 • Published 3 years ago

ex-banking v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Node.js CI

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

1.0.1

3 years ago

1.0.0

3 years ago