Skip to content

Repository files navigation

SecondTreasure REST API Docs

Quality gate

Authentication Feature

Register

POST /register

{
  "username": "rio",
  "email": "rio@gmail.com",
  "address": "depok",
  "password": "test1234",
  "role": "USER"
}

RESULT 200 /register

{
  "token": null,
  "message": "User registered successfully"
}

RESULT 400 /register

{
  "token": null,
  "message": "Username is already taken"
}
{
  "token": null,
  "message": "Password must be at least 8 characters"
}

Login

POST /login

{
  "username": "rio",
  "password": "test1234"
}

RESULT OK /login

{
  "token": "eyJhbGciOiJIUzM4NCJ9.eyJzdWIiOiJyaW8iLCJpYXQiOjE3MTUzODEyMjYsImV4cCI6MTcxNTQ2NzYyNn0.R1bnphzu1r3RAIek2MTrkz-4-tNu6r_JXbKgDiT8-sRWT9ygVAf1HRNI4Os-3_5_",
  "message": "User authenticated successfully"
}

RESULT 401 /login

RESULT 400 /login

{
  "token": null,
  "message": "User not found"
}

Logout (need Bearer token in header)

POST /userLogout

RESULT 200 /userLogout

{
  "token": null,
  "message": "User logged out successfully"
}

RESULT 400 /userLogout

{
  "token": null,
  "message": "User not found"
}

RESULT 401 /userLogout

Profile Feature (need Bearer token in header)

Get Profile

GET /profile

RESULT 200 /profile

{
  "message": "User profile retrieved successfully",
  "id": 1,
  "username": "rio",
  "email": "rio@gmail.com",
  "address": "depok"
}

RESULT 400 /profile

{
  "message": "Invalid token",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 401 /profile

Update Address

PUT /profile/address

{
  "newAddress": "jakarta"
}

RESULT 200 /profile/address

{
  "message": "Address updated successfully",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 400 /profile/address

{
  "message": "Invalid token",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 401 /profile/address

Update Balance (STAFF ONLY)

PUT /profile/balance

{
  "userId": 1,
  "balance": 300
}

RESULT 200 /profile/balance

{
  "message": "Balance updated successfully",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 400 /profile/balance

{
  "message": "Invalid token",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 400 /profile/balance

{
  "message": "User not found",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 401 /profile/balance

Decrease My Balance

PUT /profile/myBalance

{
  "balance": 300
}

RESULT 200 /profile/myBalance

{
  "message": "Balance updated successfully",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 400 /profile/myBalance

{
  "message": "Invalid token",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 400 /profile/myBalance

{
  "message": "Not enough balance",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 400 /profile/myBalance

{
  "message": "User not found",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 401 /profile/myBalance

Update Password

PUT /profile/password

{
  "oldPassword": "abcdefgh",
  "newPassword": "abcdefghi"
}

RESULT 200 /profile/password

{
  "message": "Password updated successfully",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 400 /profile/password

{
  "message": "Invalid token",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}
{
  "message": "Old password is incorrect",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 401 /profile/password

Delete Account

DELETE /profile/delete

RESULT 400 /profile/delete

{
  "message": "Invalid token",
  "id": null,
  "username": null,
  "email": null,
  "address": null
}

RESULT 401 /profile/delete

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages