This document describes the requests that can be sent to the server and the responses that can be received from the server.
{
"Request": 1,
"Data":
{
"email": "user@example.com",
"password": "pass"
}
}{
"Response": 1,
"Data": {
"status": 1,
"first_name": "User",
"role": "user",
"message": "Login successful"
}
}{
"Response": 1,
"Data": {
"status": 0
"message": "email not found"
}
}Or
{
"Response": 1,
"Data": {
"status": 0
"message": "Invalid password"
}
}{
"Request": 2,
"Data": {
"email": "user@mail.com"
}
}{
"Response": 2,
"Data": {
"status": 1,
"account_number": 123456789
}
}{
"Response": 2,
"Data": {
"status": 0,
"message": "No account found"
}
}or
{
"Response": 2,
"Data": {
"status": 0,
"message": "email not found"
}
}{
"Request": 3,
"Data": {
"account_number": 123456789
}
}{
"Response": 3,
"Data": {
"status": 1,
"message": "Balance fetched successfully",
"balance": 500.0
}
}{
"Response": 3,
"Data": {
"status": 0,
"message": "Account not found"
}
}{
"Request": 4,
"Data": {
"email": "email@test.com"
}
}{
"Request": 4,
"Data": {
"email": "admin@test.com"
}
}{
"Request": 4,
"Data": {
"status": 1,
"message": "Transaction history retrieved for account number 123456789",
"List":
[ // User will get transactions to or from his account only
{
"from_account_number": 123456789,
"to_account_number": 987654321,
"transaction_amount": 100.0,
"created_at": "2021-01-01"
},
{
"from_account_number": 987654321,
"to_account_number": 123456789,
"transaction_amount": 130.0,
"created_at": "2021-01-03"
}
]
}
}{
"Request": 4,
"Data": {
"status": 1,
"message": "Transaction history retrieved for all users",
"List":
[ // Admin will get all transactions in the database
{
"from_account_number": 123456789,
"to_account_number": 987654321,
"transaction_amount": 100.0,
"created_at": "2021-01-01"
},
{
"from_account_number": 987654321,
"to_account_number": 123456789,
"transaction_amount": 130.0,
"created_at": "2021-01-03"
},
{
"from_account_number": 4343656567,
"to_account_number": 123232324,
"transaction_amount": 1435.0,
"created_at": "2021-01-03"
}
]
}
}
{
"Request": 5,
"Data": {
"from_account_number": 123456789,
"to_account_number": -1,
"to_email": "user@mail.com",
"transaction_amount": 100.0
}
}
{
"Request": 5,
"Data": {
"from_account_number": 123456789,
"to_account_number": 1222255555,
"to_email": "",
"transaction_amount": 100.0
}
}{
"Response": 5,
"Data": {
"status": 1,
"message": "Transaction successful"
}
}{
"Response": 5,
"Data": {
"status": 0,
"message": "Insufficient balance"
}
}{
"Request": 6,
"Data": {
"from_account_number": 123456789,
"to_account_number": 987654321,
"transferAmount": "+50.0"
}
}or
{
"Request": 6,
"Data": {
"from_account_number": 123456789,
"to_account_number": 987654321,
"transferAmount": "-50.0"
}
}
{
"Response": 6,
"Data": {
"status": 1,
"message": "Transfer successful"
}
}
{
"Response": 6,
"Data": {
"status": 0,
"message": "Insufficient balance"
}
}
or
{
"Response": 6,
"Data": {
"status": 0,
"message": "Account not found"
}
}
{
"Request": 7,
"Data": {
"email": "admin@mail.com",
}
}{
"Response": 7,
"Data": {
"status": 1,
"message": "Database fetched successfully",
"users": [
{
"account_number": 123456789, // NULL if admin
"first_name": "Admin",
"last_name": "User",
"email": "email@mail.com",
"role": "user",
"balance": 500.0
},
{
"account_number": NULL, // NULL if admin
"first_name": "User",
"last_name": "User",
"email": "admin@mail.com",
"role": "admin",
"balance": 500.0
}
]
}
}{
"Response": 7,
"Data": {
"status": 0,
"message": "Cannot get database. User is not an admin",
}
}
or
{
"Response": 7,
"Data": {
"status": 0,
"message": "No data found",
}
}
{
"Request": 8,
"Data": {
"email": "admin@mail.com",
"newUser": [
{
"first_name": "New",
"last_name": "User",
"email": "newuser@example.com",
"password": "newpass",
"role": "user",
"initial_balance": 500.0
}
],
}
}{
"Response": 8,
"Data": {
"status": 1,
"message": "New user created successfully"
}
}or
{
"Response": 8,
"Data": {
"status": 1,
"message": "New admin created successfully"
}
}{
"Response": 8,
"Data": {
"status": 0,
"message": "User already exists"
}
}or
{
"Response": 8,
"Data": {
"status": 0,
"message": "Cannot create new user. User is not an admin"
}
}
or
{
"Response": 8,
"Data": {
"status": 0,
"message": "Missing required fields"
}
}
or
{
"Response": 8,
"Data": {
"status": 0,
"message": "Invalid role"
}
}or
{
"Response": 8,
"Data": {
"status": 0,
"message": "Admin can't have account and initial balance"
}
}
{
"Request": 9,
"Data": {
"email": "admin@mail.com",
"account_number": 123456789
}
}{
"Response": 9,
"Data": {
"status": 1,
"message": "User deleted successfully"
}
}{
"Response": 9,
"Data": {
"status": 0,
"message": "Account number does not exist"
}
}{
"Response": 9,
"Data": {
"status": 0,
"message": "Unauthorized, Cannot delete user."
}
}{
"Request": 10,
"Data": {
"email": "admin@mail.com",
"account_number": 123456789,
"newData": {
"first_name": "Updated",
"last_name": "User",
"email": "updateduser@example.com",
"role": "admin"
}
}
}{
"Response": 10,
"Data": {
"status": 1,
"message": "User updated successfully"
}
}{
"Response": 10,
"Data": {
"status": 0,
"message": "Account number does not exist"
}
}
or
{
"Response": 10,
"Data": {
"status": 0,
"message": "Unauthorized, Cannot update user"
}
}
or
{
"Response": 10,
"Data": {
"status": 0,
"message": "Failed to update user"
}
}{
"Request": 11,
"Data":
{
"email": "user@example.com",
"password": "pass"
}
}
{
"Request": 11,
"Data": {
"status": 1,
"first_name": "ahmed",
"role": "user",
"account_number": 123456789,
"current_balance": 500.0,
"List": // List of history transactions
[
{
"to_account_number": 987654321,
"transaction_amount": 100.0,
"transaction_type": "+", // "+" for deposit
"created_at": "2021-01-01"
},
{
"to_account_number": 987612321,
"transaction_amount": 130.0,
"transaction_type": "Withdrawal", // "-" for withdrawal
"created_at": "2021-01-03"
}
]
}
}
{
"Request": 11,
"Data": {
"status": 1,
"first_name": "ahmed",
"role": "admin",
"List": // List of database users
[
{
"account_number": 123456789, // NULL if admin
"first_name": "Admin",
"last_name": "User",
"email": "email@mail.com",
"role": "user",
"balance": 500.0
},
{
"account_number": NULL, // NULL if admin
"first_name": "User",
"last_name": "User",
"email": "admin@mail.com",
"role": "admin",
"balance": 500.0
}
]
}
}
Sequence diagram : UserInitRequest processes user initialization request (for user and admin widgets)
{
"Request": 12,
"Data":
{
"email": "user@example.com",
"password": "pass",
"new_email": "newmail@example.com"
}
}{
"Response": 12,
"Data": {
"status": 1,
"message": "Email updated successfully"
}
}
{
"Response": 12,
"Data": {
"status": 0,
"message": "Email already exists"
}
}or
{
"Response": 12,
"Data": {
"status": 0,
"message": "Invalid password"
}
}{
"Request": 13,
"Data":
{
"email": "user@example.com",
"password": "pass",
"new_password": "newPass"
}
}
{
"Response": 12,
"Data": {
"status": 1,
"message": "Password updated successfully"
}
}{
"Response": 12,
"Data": {
"status": 0,
"message": "Invalid password"
}
}