jveiiga / T2S

Projeto feito para T2S.

Home Page:https://www.notion.so/Teste-pr-tico-processo-seletivo-428930dec1da477793908604d1b2bd29

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spring Initializr

Esse é o repositório da API T2Sdemo, feito com Spring Initializr.

Endpoints

Existe 2 endpoints que podem ser utilizado para GET e POST:
localhost:8080/containers
localhost:8080/movements

Os mesmos podem ser utilizados para o PATCH e o DELETE, basta adicionar como parâmetro o id na rota:
localhost:8080/containers/23
localhost:8080/movements/23

Cadastro

POST /containers
POST /movements

Busca

GET /containers
GET /movements

Edição

PATCH /containers/:id
PATCH /movements/:id

Deleção

DELETE /containers/:id
DELETE /movements/:id

🏀 T2S - API 🏀

Este é o backend da aplicação T2Sdemo.

“Focada exclusivamente no Setor Portuario.”

📦 Aqui está o projeto documentado no Notion 📦

Clique para ver a documentão      

💠 E aqui o Jira desenvolvido para o projeto 💠

Clique para ver a sprint      

📺 Video gravado apresentando o desenvolvimento 📺

Clique para ver      

Instalação      

Instalação

- Clonar repositorio
$ git clone https://github.com/jveiiga/T2Sdemo.git

Sobre o Projeto 📺

- Rodando API
É necessário que você encontre o Maven em seu editor de texto, ele vai ter uma estrura de pasta parecida com essa:

> Pasta principal
> ├── 📂 Lifecycle
> │   ├── ⚙️ clean
> │   ├── ⚙️ validate
> │   ├── ⚙️ compile
> │   ├── ⚙️ test
> │   ├── ⚙️ test-compile
> │   ├── ⚙️ package (Ao cliquar aqui, aparecerá um ícone desses ▶️ clique nele para intalar os pacotes de dependências).
> │   ├── ⚙️ verify
> │   ├── ⚙️ install
> │   ├── ⚙️ site
> │   ├── ⚙️ deploy
> ├── 📁 Plugins
> ├── 📁 Dependecies
> ├── 📁 Favorite
> ├── 📁 Profiles

- Após instalar as depêndecias do projeto é necessário encontrar o arquivo ☕️ CardapioApplication.java
  
> Pasta principal
> ├── 📂 src
> │   ├── 📂 main
> │   └──── 📂 java
> │   └────── 📂 com
> │   └──────── 📂 example
> │   └────────── 📂 T2Sdemo
                    └── ☕️ T2SdemoApplication.java (Ao cliquar aqui, aparecerá um ícone desses ▶️ no canto direito superior, clique nele e o servidor será inicializado).
                    
 -Ps: anexei ao projeto o Insomnia.json que pode ser importado no Insomnia e utilizado, mas sinta-se a vontade para utilizar o de sua prefêrencia.

Endpoints      

Endpoints

API CRUD de Contêiners e Movimentos.

baseUrl da API: localhost:8080

🚨 Nenhuma rota necessita de autenticação 🚨

Rota Container      

Rota para cadastro de contêiner:

POST /containers - FORMATO DA RESPOSTA - STATUS 200 OK

{
  "id": 4,
  "client": "Shein",
  "container_number": "TEST1234567",
  "type": 20,
  "status": true,
  "category": "importação"
}

Rota para buscar todos contêiners:

GET /containers - FORMATO DA RESPOSTA - STATUS 200 OK

[
  {
   "id": 2,
   "client": "Ali Express",
   "container_number": "TEST1234567",
   "type": 20,
   "status": true,
   "category": "importação"
  },
  {
   "id": 3,
   "client": "Shopee",
   "container_number": "TEST1234567",
   "type": 20,
   "status": true,
   "category": "importação"
  },
  {
   "id": 4,
   "client": "Shein",
   "container_number": "TEST1234567",
   "type": 20,
   "status": true,
   "category": "importação"
  }
]

Rota para editar um contêiner:

PATCH /containers/:id - FORMATO DA RESPOSTA - STATUS 200 OK

{
  "id": 1,
  "client": "Shopee",
  "container_number": "TEST1234567",
  "type": 20,
  "status": false,
  "category": "importação"
}

Rota para deletar um contêiner:

DELETE /containers/:id - FORMATO DA RESPOSTA - STATUS 204 NO CONTENT

"No body returned for response" 

🚨 Nenhuma rota necessita de autenticação 🚨

Rota Movement      

Rota para cadastro de movimento:

POST /movements - FORMATO DA RESPOSTA - STATUS 200 OK

{
  "id": 4,
  "container": {
  "id": 3,
  "client": "Shopee",
  "container_number": "TEST1234567",
  "type": 20,
  "status": true,
  "category": "importação"
  },
  "movementType": "reposicionamento",
  "startTimeDate": "2023-05-31T15:22:21.825",
  "endTimeDate": "2023-05-31T15:22:21.825"
}

Rota para buscar todos movimentos:

GET /movements - FORMATO DA RESPOSTA - STATUS 200 OK

[
 {
    "id": 1,
    "containerId": 2,
    "movementType": "gate in",
    "startTimeDate": "2023-05-31T13:14:25.808",
    "endTimeDate": "2023-05-31T13:14:25.808"
   },
   {
    "id": 2,
    "containerId": 3,
    "movementType": "gate in",
    "startTimeDate": "2023-05-31T13:17:29.448",
    "endTimeDate": "2023-05-31T13:17:29.448"
   },
   {
    "id": 4,
    "containerId": 3,
    "movementType": "reposicionamento",
    "startTimeDate": "2023-05-31T15:22:21.825",
    "endTimeDate": "2023-05-31T15:22:21.825"
   }
]

Rota para editar um movimento:

PATCH /movements/:id - FORMATO DA RESPOSTA - STATUS 200 OK

{
  "id": 3,
  "container": {
	  "id": 4,
	  "client": "Shein",
	  "container_number": "TEST1234567",
	  "type": 20,
	  "status": true,
	  "category": "importação"
  },
  "movementType": "gate out",
  "startTimeDate": "2023-05-31T13:19:37.16",
  "endTimeDate": "2023-05-31T13:19:37.16"
}

Rota para deletar um movimento:

DELETE /movements/:id - FORMATO DA RESPOSTA - STATUS 204 NO CONTENT

"No body returned for response"