Skip to content

atomgunlk/prime-vote

Repository files navigation

Prime vote

"Prime vote", The demo project

Included :

  • Unit test, Use Mockery for mock data of dependencies.
  • Request validator
  • Graceful shutdown

Build & Run

cd deployments
./dockerbuild.sh
docker-compose up

Test users

Username : test0
Password : test0

Username : test1
Password : test1

API

POST /login (User login)

Request [application/json]

name type data type description
username required string Username
password required string Password

Response

name data type response
responseStatus Object {"code":"00000","message":"Success"}
token string
POST /vote (Give a vote)

Request [application/json]

name type data type description
id required int Vote item ID

Response

name data type response
responseStatus Object {"code":"00000","message":"Success"}
POST /voteitem (Create a vote item)

Request [application/json]

name type data type description
name required string Vote item name
description required string Vote item description

Response

name data type response
responseStatus Object {"code":"00000","message":"Success"}
GET /voteitem (List vote items)

Response

name data type response
responseStatus Object {"code":"00000","message":"Success"}
items Array of Item [{"id": 1, "name": "item1", "description": "", "vote_count": 4 }, {"id": 2, ...}]
PUT /voteitem/{{id}} (Update vote item)

Request [application/json]

name type data type description
name required string Vote item name
description required string Vote item description

Response

name data type response
responseStatus Object {"code":"00000","message":"Success"}
PUT /voteitem/{{id}}/clear (Clear vote item count)

Response

name data type response
responseStatus Object {"code":"00000","message":"Success"}
DELETE /voteitem/{{id}} (Delete vote item)

Response

name data type response
responseStatus Object {"code":"00000","message":"Success"}
GET /voteresult (Get vote result)

Response

name data type response
responseStatus Object {"code":"00000","message":"Success"}
GET /voteresult/export (Export vote result as XLSX file)

POSTMAN Collection

postman-collection

Run Test

godotenv -f ./test/.env go test ./cmd/prime-vote/handler  -run "TestUnitHandler" -cover

About

"Prime vote", The demo project

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages