Esse repositório contém um projeto de estudo exemplicando um API construída em SpringBoot com Maven.
Para rodar a aplicação localmente, execute o seguinte comando no terminal:
mvn spring-boot:run
Para executar os testes unitários do projeto, execute o seguinte comando no terminal:
mvn clean test
As configurações de banco de dados, como host, usuário e senha estão no arquivo application.properties
# Datasource
spring.datasource.url=jdbc:mysql://localhost:3306/pontoeletronico
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
Lista de todos os usuários cadastradas na base de dados
[
{
"id": 1,
"nome": "João Batista",
"cpf": "19100000000",
"email": "[email protected]",
"dataCadastro": "2020-04-10T21:31:43.000+0000"
},
{
"id": 2,
"nome": "Mateus Augusto",
"cpf": "12345678909",
"email": "[email protected]",
"dataCadastro": "2020-04-10T10:31:43.000+0000"
}
]
Detalhes do usuário com o identificador passado como parâmetro
{
"id": 1,
"nome": "João Batista",
"cpf": "19100000000",
"email": "[email protected]",
"dataCadastro": "2020-04-10T21:31:43.000+0000"
}
Criação de um novo usuário com os dados passados no corpo da requisição
{
"nome": "Pedro Lima",
"cpf": "12345678989",
"email": "[email protected]"
}
Atualização do cadastro do usuário com o identificador passado como parâmetro
/usuario/3
{
"nome": "Pedro Lima Pereira",
"cpf": "12345678989",
"email": "[email protected]"
}
Listagem de todas as marcações de ponto de um determinado usuário, juntamente com a quantidade de horas trabalhadas por dia
O identificador do usuário é obtido atráves do Header da requisição (idUsuario)
Para marcações ímpares de ponto, a quantidade de horas trabalhadas é calculada até o final do dia corrente. Sendo que para dias anteriores o cálculo é feito até o final do dia (23h59m59s)
[
{
"data": "10/04/2020",
"horasTrabalhadas": "08:00",
"marcacoes": [
{
"hora": "09:00:00",
"tipo": "ENTRADA"
},
{
"hora": "12:00:00",
"tipo": "SAIDA"
},
{
"hora": "13:00:00",
"tipo": "ENTRADA"
},
{
"hora": "18:00:00",
"tipo": "SAIDA"
}
]
}
]
Registro de batida de ponto de um determinado usuário (Entrada ou Saída)
O identificador do usuário é obtido atráves do Header da requisição (idUsuario)