Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/target/
!.mvn/wrapper/maven-wrapper.jar

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
/build/
Binary file added .mvn/wrapper/maven-wrapper.jar
Binary file not shown.
1 change: 1 addition & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
6 changes: 6 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM java:8

MAINTAINER Cleverson de Melo

ADD /target/gastos-v1.jar gastos-v1.jar
ENTRYPOINT ["java","-jar", "gastos-v1.jar"]
74 changes: 74 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,76 @@
# Api gastos

Para este projeto é necessário utilizar o banco de dados NO SQL mongodb para inclusão, alteração e consulta dos dados.

Para rodar o projeto basta ter o docker e docker compose instalado na maquina e utilizar o seguinte comando para gerar os container com a imagem do projeto e do mongodb:

docker-compose -f docker-compose.yml up -d

<h1> Versões utilizadas </h1>
-Java v1.8<br>
-Framework SpringBoot v2.1.2<br>
-Maven para gerenciar as dependencias do projeto<br>
-Utilização mongorepository para gerenciamento do repositório<br>
-Banco de dados Mongodb v3.4.6
-IDE Eclipse Mars.2 Release (4.5.2)<br>
-Utilizado Oauth2 v2.1.0 com auto configure para autenticação da api

<h1> EndPoints Disponiveis </h1>

<h2>POST</h2>
http://localhost:8080/oauth/token

Utilizar Header Authorization Basic dXN1YXJpb2FwaTpzb2V1c2Vp
Body do tipo form-data com esse parametros:
grant_type: password
username: santander
password: san123

Após efetuar esta autenticação será gerado o token para utilização dos endpoits da api.

<h1> Endpoints da API </h1>

Lembrando que o uso só será liberado após a autenticaçao onde irá retornar o token do tipo Bearer.

Utilizar no header o parametro Authorization: Bearer Token-gerado e Content-Type: "application/json"

<h2>GET Lista de gastos</h2>
http://localhost:8080/api/gastos/{codigousuario}

<h2>GET Detalhe do gasto</h2>
http://localhost:8080/api/gastos/{codigousuario}/{id}

<h2>POST Criar gasto</h2>
http://localhost:8080/api/gastos/
<p>Body</p>
{
"descricao": "Descricao",
"valor": 1500.00,
"codigousuario": 1,
"data": "2019-02-08T19:50:00"
}

<h2>PUT alterar gasto</h2>
{
"descricao": "Descricao",
"valor": 1500.00,
"codigousuario": 1,
"data": "2019-02-08T19:50:00",
"idCategoria": "5c5cb2b2aa2d1652ae3a17ea",
"id": "5c5cb2b2aa2d1652ae3a17e9"
}

<h2>GET Sugestão de categorias</h2>
http://localhost:8080/api/categorias/{categoria}

Para este recurso caso digite uma letra como a por exemplo, irá retornar todas as categorais com a existentes na base, caso digite loja, irá retornar as categorias cujo tenha loja na Base, método não é case sensitive, irá trazer o dado caso esteja maiusculo ou minusculo.

As funcionalidades de atributição automatica da categoria está definido no serviço.

Foram criada todas as funcionalidades solicitadas no teste.

Qualquer dúvida sigo a disposição.

# Show me the code

### # DESAFIO:
Expand Down Expand Up @@ -74,3 +147,4 @@ Faça um fork desse desse repositório em seu Github e nos envie um Pull Request
### # Importante: não há prazo de entrega, faça com qualidade!

# BOA SORTE!
>>>>>>> 8be82c72211a7dee780f0a0a5695cddf9065985d
22 changes: 22 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
version: '3'
services:
gastos:
container_name: gastos-v1
image: gastos-v1:latest
ports:
- '8080:8080'
links:
- mongo
volumes:
- /application/application.properties
mongo:
container_name: mongo
image: mongo
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/dev/null
volumes:
- ./data/db:/data/db
ports:
- 27017:27017
command: mongod --smallfiles --logpath=/dev/null
Loading