Included :
- Unit test, Use Mockery for mock data of dependencies.
- Request validator
- Graceful shutdown
cd deployments
./dockerbuild.sh
docker-compose up
Username : test0
Password : test0
Username : test1
Password : test1
POST
/login
(User login)
name type data type description username
required string Username password
required string Password
name data type response responseStatus
Object {"code":"00000","message":"Success"}
token
string
POST
/vote
(Give a vote)
name type data type description id
required int Vote item ID
name data type response responseStatus
Object {"code":"00000","message":"Success"}
POST
/voteitem
(Create a vote item)
name type data type description name
required string Vote item name description
required string Vote item description
name data type response responseStatus
Object {"code":"00000","message":"Success"}
GET
/voteitem
(List vote items)
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)
name type data type description name
required string Vote item name description
required string Vote item description
name data type response responseStatus
Object {"code":"00000","message":"Success"}
PUT
/voteitem/{{id}}/clear
(Clear vote item count)
name data type response responseStatus
Object {"code":"00000","message":"Success"}
DELETE
/voteitem/{{id}}
(Delete vote item)
name data type response responseStatus
Object {"code":"00000","message":"Success"}
GET
/voteresult
(Get vote result)
name data type response responseStatus
Object {"code":"00000","message":"Success"}
GET
/voteresult/export
(Export vote result as XLSX file)
godotenv -f ./test/.env go test ./cmd/prime-vote/handler -run "TestUnitHandler" -cover