- Docker
- Clone the repository:
git clone https://github.com/TodayNightt/words-of-wisdom-gacha
- Navigate to the project directory:
cd words-of-wisdom-gacha
- Build and run the Docker containers:
docker compose up
- Access the application:
- Open your web browser and go to
http://localhost:80
to access the API
- Open your web browser and go to
- Method:
GET
- Require login:
false
- Uses: Check health
- Request Payload:
None
- Method:
GET
- Require login:
false
- Uses: Get a random fortune
- Request Payload:
None
- Response Payload:
{"fortune" : string, collection_name : string}
- Method:
POST
- Require login:
true
- Uses: Create new fortune
- Request Payload:
{"fortune" : string, "collection_name" : string}
- Response Payload:
{"id" : string}
- Method:
GET
- Require login:
true
- Uses: Get the fortune with the corresponding id
- Request Payload:
{"id" : string}
- Response Payload:
{"id" : string", "fortune" : string, "collection_name" : string}
- Method:
GET
- Require login:
true
- Uses: Get all the fortunes in a list
- Request Payload: None
- Response Payload:
{list : [{"id" : string, "fortune" : string, "collection_name" : string}]}
- Method:
POST
- Require login:
true
- Uses: Update fortune by id
- Request Payload:
{"id" : string, "collection_name" : string, "data" : string}
- Response Payload:
{"id" : string}
- Method:
DELETE
- Require login:
true
- Uses: Delete fortune by id
- Request Payload:
{"id" : string}
- Response Payload:
{"id" : string}
- Method:
POST
- Require login:
true
- Uses: Create fortunes in bulk
- Request Payload:
Multipart form data with `file` and `hasHeader` fields
- Response Payload:
{"added" : [string]}
- Method:
POST
- Require login:
true
- Uses: Get count of fortunes in a collection
- Request Payload:
{"collection_name" : string}
- Response Payload:
{"collection_name" : string, "count" : number}
- Method:
POST
- Require login:
true
- Uses: Update collection name of a fortune
- Request Payload:
{"id" : string, "collection_name" : string}
- Response Payload:
{"id" : string}
- Method:
POST
- Require login:
true
- Uses: Create a new collection
- Request Payload:
{"collection_name" : string}
- Response Payload:
{"created" : boolean, "id" : string}
- Method:
GET
- Require login:
true
- Uses: List all collections
- Request Payload:
None
- Response Payload:
{list : [string]}
- Method:
GET
- Require login:
true
- Uses: Get collection by id using query parameter
- Request Payload:
{"id" : string}
- Response Payload:
{"id" : string, "collection_name" : string}
- Method:
DELETE
- Require login:
true
- Uses: Delete collection by id
- Request Payload:
{"to_delete_collection_name" : string, "swap_to_collection_name" : optional<string>}
- Response Payload:
{"deleted" : boolean, "deletedCollectionName" : string, "changeCollectionName" : string, affected : number}
- Method:
POST
- Require login:
false
- Uses: Login user
- Request Payload:
{"username" : string, "password" : string}
- Response Payload:
{"token" : string, "success" : boolean}
- Method:
POST
- Require login:
true
- Uses: Logoff user
- Request Payload:
None
- Response Payload:
{"success" : boolean}