Terceiro lab pós go expert (leilão)
- Eu não consertei nenhum (mentira, só um) dos problemas já existentes no programa inicial disponibilizado, apenas adicionei a feature nova pedida.
- Por favor, não falhar o lab por problemas provenientes do projeto inicial (como a falta de uma rota pra criar user ou o filtro de status de auctions não funcionando na rota de get auction)
- golang versão 1.22.3 ou superior
- ou docker
- Pode rodar com
docker-compose up
. Subirá o servidor e o banco mongodb necessários.
- Pode-se testar a função nova rodando os unit testes adicionados com
go test ./...
- Após a criação de uma nova auction, ele irá atualizar após o tempo definido no arquivo
.env
no caminhocmd/auction/.env
pela variávelAUCTION_INTERVAL=20s
. Caso deseje mudar esse tempo, basta alterar essa variável (e subir o projeto novamente comdocker-compose up --build
) - Pode-se conferir que, após o tempo estipulado anteriormente, o valor do status da auction é alterado para 1 (Completed)
Ex:
-
Para criar uma nova auction:
POST http://localhost:8080/auction { "product_name": "notebook", "category": "eletronics", "description": "a normal notebook", "condition": 0 }
-
Para buscar as auctions:
GET http://localhost:8080/auction?status=0
-
Se tiver o id de uma auction (pela request acima, por exemplo) pode vê-la em específico pela requisição:
GET http://localhost:8080/auction/winner/:auctionId
Substituindo a variável :auctionId pelo id da auction
OBS: Lembrando, apenas a funcionalidade nova foi adicionada. Os pontos que não estiverem funcionando além da funcionalidade de compleção automática da auction é porque já não estavam funcionando no projeto original... (tem muita coisa sem funcionar)