"Prime vote", The demo project
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)
Request [application/json
]
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)
Request [application/json
]
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)
Request [application/json
]
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)
Request [application/json
]
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)
postman-collection
godotenv -f ./test/.env go test ./cmd/prime-vote/handler -run "TestUnitHandler" -cover