Esse projeto foi a realização de um desafio proposto por IAmTimCorey
Crie um sistema para capturar dados de compra de um chamador.
armazenar os dados em um banco de dados.
Se houver um usuário duplicado, atualize seus dados em vez de adicionar um novo registro.
- Cadastro de Conta.
- Visualização de Produtos.
- Compra de Produtos.
- Visualização de produtos comprados por usuário.
POST /api/users/register
Parâmetro | Tipo | Descrição |
---|---|---|
name |
string |
Nome do usuário |
email |
string |
Email do usuário |
nickname |
string |
Apelido do usuário |
Response - 200
{
"message": "conta criada com sucesso"
}
Response - 400
{
"message": "usuário já existente"
}
Response - 400
{
"message": "nome deve conter no mínimo 3 dígitos."
}
Response - 400
{
"message": "email deve conter '@' e no mínimo 3 dígitos."
}
Response - 400
{
"message": "nickname deve conter no mínimo 3 dígitos."
}
POST /api/users/view
Parâmetro | Tipo | Descrição |
---|---|---|
email |
string |
Email do usuário |
nickname |
string |
Apelido do usuário |
Response - 400
{
"message": "usuário não encontrado"
}
Response - 200
{
"name": "EXAMPLE",
"email": "[email protected]",
"nickname": "EXAMPLE_NICKNAME"
}
POST /api/products/viewUserProducts
Parâmetro | Tipo | Descrição |
---|---|---|
email |
string |
Email do usuário |
Response - 200
{
"success": true,
"message": "Nenhum produto encontrado",
"data": null
}
Response - 200
{
"success": true,
"message": "produtos encontrados",
"data": [
{
"pR_NAME": "Escova de Dentes",
"pR_PRICE": 1,
"uP_SOLD_DATE": "2023-09-22T00:00:00",
"uP_AMOUNT": 50,
"uP_TOTAL": 50
},
{
"pR_NAME": "Cenouras (kg)",
"pR_PRICE": 2,
"uP_SOLD_DATE": "2023-09-22T00:00:00",
"uP_AMOUNT": 50,
"uP_TOTAL": 100
}
]
}
POST /api/products/buy
Parâmetro | Tipo | Descrição |
---|---|---|
IdProduct |
int |
ID do produto |
email |
string |
Email do usuário |
amount |
int |
quantidade desejada do produto |
Response - 200
{
"success": true,
"message": "produto comprado",
"data": null
}
Response - 400
{
"success": false,
"message": "usuário não encontrado",
"data": null
}
Response - 400
{
"success": false,
"message": "produto não encontrado",
"data": null
}
Response - 400
{
"success": false,
"message": "quantidade inválida",
"data": null
}
GET /api/products/viewProducts
Parâmetro | Tipo | Descrição |
---|---|---|
N/A |
N/A |
Retorna todos os produtos registrados |
Response - 200
{
"success": true,
"message": "buscado todos os produtos",
"data": [
{
"id": 1,
"name": "Arroz",
"price": 4
},
{
"id": 2,
"name": "Feijão",
"price": 2
},
.....
]
}
Front-end: Swagger.
Back-end: .NET 7, Dapper.
AVISOS
- Garanta que há o VisualStudio 2022, MySQL e MySQL Workbench instalados.
- Efetua as etapas no banco de dados para que funcione corretamente.
Clone o projeto
git clone https://github.com/VictorSantos09/TimCorey-BackEnd-Challenge.git
Abra ChallegeDatabaseMER
Vá em Database > Forward Engineer > Selecione 'Next' (próximo) até completar.
Abra INSERTs.txt e execute o script no banco de dados.
Entre no diretório do projeto
cd TimCorey-BackEnd-Challenge
Inicie a solução
start ChallengeCore.sln
Defina ChallengeUI como projeto de inicialização.
Execute o programa.