Skip to content

API that allows the user to find selective garbage collection points according to the garbage they want to discard, using geopositioning, and also allows the user to register new selective garbage collection hosts.

Notifications You must be signed in to change notification settings

brawlingthebits/pollutants-recycling

 
 

Repository files navigation

Pollutants Recycling


Rotas


Users

Cadastro de usuários

POST /users - FORMATO DA REQUISIÇÃO

{
  "name": "José",
  "email": "josé@email.com",
  "password": "senhaForte",
  "address": {
    "zipCode": "11020325",
    "number": 736,
    "complement": "Apt 121" 
  }
}

Em caso de sucesso, a resposta será:

POST /users - FORMATO DA RESPOSTA - STATUS 201

{
  "userId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "name": "José",
  "email": "josé@email.com",
  "address":{
    "address_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "zipCode": "11020325",
    "street": "AV. Afonso Pena",
    "number": 736,
    "complement": "Apt 121",
    "city": "Santos",
    "state": "SP",
    "isDumpSpot": false
  }
}



Login de usuários

POST /login - FORMATO DA REQUISIÇÃO

{
  "email": "josé@email.com",
  "password": "senhaForte"
}

Em caso de sucesso, a resposta será:

POST /login - FORMATO DA RESPOSTA - STATUS 200

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImU0NWFiMTBkLTJmZjUtNDRmYy1hMzM0LWQ3ZGZkMzk4OTJiYiIsImlhdCI6MTY1Mzc2MDMzNywiZXhwIjoxNjUzNzYzOTM3fQ.ECH1rK8WvGkzY2ghEP5TJW4ZD8cOjeGfyvgSwn9ZAfs"
}



Busca de todos os usuários

GET /users - NO BODY

Bearer Token Required

Em caso de sucesso, a resposta será:

GET /users - FORMATO DA RESPOSTA - STATUS 200

{
    "users":[
        {
          "userId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
          "name": "José",
          "email": "josé@email.com",
          "address":{
            "addressId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
            "zipCode": "11020325",
            "street": "AV. Afonso Pena",
            "number": 736,
            "complement": "Apt 121",
            "city": "Santos",
            "state": "SP",
            "isDumpSpot": false
          }
        },
        {
          "userId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
          "name": "Gustavo",
          "email": "gustavo3@email.com",
          "address":{
            "addressId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
            "zipCode": "91350160",
            "street": "Rua Guilherme Klippel",,
            "number": 305,
            "complement": "casas",
            "city": "Porto Alegre",
            "state": "RS",
            "isDumpSpot": false
          }
        }
    ]
}



Busca de um usuário

GET /users/:id - NO BODY

Bearer Token Required

Em caso de sucesso, a resposta será:

GET /users/:id - FORMATO DA RESPOSTA - STATUS 200

{
  "userId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "name": "José",
  "email": "josé@email.com",
  "address":{
    "address_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "zipCode": "11020325",
    "street": "AV. Afonso Pena",
    "number": 736,
    "complement": "Apt 121",
    "city": "Santos",
    "state": "SP",
    "isDumpSpot": false
  }
}



Atualização de usuários

PATCH /users/:id - FORMATO DA REQUISIÇÃO

Bearer Token Required

{
  "name": "José Carlos",
  "number": 732,
  "complement": "Apt 42"
}

Em caso de sucesso, a resposta será:

PATCH /users/:id - FORMATO DA RESPOSTA - STATUS 200

{
  "userId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "name": "José Carlos",
  "email": "josé@email.com",
  "address":{
    "address_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "zipCode": "11020325",
    "street": "AV. Afonso Pena",
    "number": 732,
    "complement": "Apt 42",
    "city": "Santos",
    "state": "SP",
    "isDumpSpot": false
  }
}



Remoção de usuários

DELETE /users/:id - NO BODY

Bearer Token Required

Em caso de sucesso, a resposta será:

DELETE /users/:id - FORMATO DA RESPOSTA - STATUS 204

{
  "message": "user successfully deleted""
}



Categories

Cadastro de categorias

POST /categories - FORMATO DA REQUISIÇÃO

Bearer Token Required

{
  "name": "Óleo",
  "unit": "Litros",
  "description": "Óleo de cozinha usado",
}

Em caso de sucesso, a resposta será:

POST /categories - FORMATO DA RESPOSTA - STATUS 201

{
  "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "name": "Óleo",
  "unit": "Litros",
  "description": "Óleo de cozinha usado",
}



Busca de todoas as categorias

GET /categories - NO BODY

Bearer Token Required

Em caso de sucesso, a resposta será:

GET /categories - FORMATO DA RESPOSTA - STATUS 200

{
    "categories":[
        {
            "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
            "name": "Óleo",
            "unit": "Litros",
            "description": "Óleo de cozinha usado",
        },
        {
            "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
            "name": "Eletrônico",
            "unit": "Quilos",
            "description": "Equipmentos eletrônicos quebrados ou inutilizados",
        },
        {
            "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
            "name": "Remédios",
            "unit": "Caixas",
            "description": "Descarte de remédios vencidos ou sem uso",
        }
    ]
}



Busca de uma categoria

GET /categories/:name - NO BODY

Bearer Token Required

Em caso de sucesso, a resposta será:

GET /categories/:name - FORMATO DA RESPOSTA - STATUS 200

{
    "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "name": "Remédios",
    "unit": "Caixas",
    "description": "Descarte de remédios vencidos ou sem uso",
}



Itens

Cadastro de item

Bearer Token Required

POST /items - FORMATO DA REQUISIÇÃO

{
  "name": "Garrafa de óleo",
  "description": "Garrafa de óleo usado",
  "quantity": "3 Litros",
  "category": "Óleo" 
}

Em caso de sucesso, a resposta será:

POST /items - FORMATO DA RESPOSTA - STATUS 201

{
  "itemId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "name": "Garrafa de óleo",
  "description": "Garrafa de óleo usado",
  "quantity": "3 Litros",
  "category": {
    "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "name": "Óleo",
    "unit": "Litros",
    "description": "Óleo de cozinha usado",
    } 
}



Busca de um item

GET /items/:id - NO BODY

Bearer Token Required

Em caso de sucesso, a resposta será:

GET /items/:id - FORMATO DA RESPOSTA - STATUS 200

{
  "itemId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "name": "Garrafa de óleo",
  "description": "Garrafa de óleo usado",
  "quantity": "3 Litros",
  "category": {
    "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "name": "Óleo",
    "unit": "Litros",
    "description": "Óleo de cozinha usado",
    } 
}



Atualização de itens

PATCH /items/:id - FORMATO DA REQUISIÇÃO

Bearer Token Required

{
  "name": "Galão de óleo",
  "description": "Galão de óleo usado",
}

Em caso de sucesso, a resposta será:

PATCH /items/:id - FORMATO DA RESPOSTA - STATUS 200

{
  "itemId": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "name": "Galão de óleo",
  "description": "Galão de óleo usado",
  "quantity": "3 Litros",
  "category": {
    "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "name": "Óleo",
    "unit": "Litros",
    "description": "Óleo de cozinha usado",
    } 
}



Remoção de items

DELETE /items/:id - NO BODY

Bearer Token Required

Em caso de sucesso, a resposta será:

DELETE /items/:id - FORMATO DA RESPOSTA - STATUS 204

{
    "message": "item successfully deleted""
}



DumpSpot

Cadastro de pontos de coleta

Bearer Token Required

POST /dumpSpot - FORMATO DA REQUISIÇÃO

{
  "name": "ONG NatureLive",
  "zipCode": "11020004",
	"address": {
		"number": 726,
  	"complement": "Apt 31",
    "isDumpSpot": true
	} 
}

Em caso de sucesso, a resposta será:

POST /dumpSpot - FORMATO DA RESPOSTA - STATUS 201

{
  "dumpSpot_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "name": "ONG NatureLive",
  "address":{
    "address_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "zipCode": "11020004",
    "street": "AV. Afonso Pena",
    "number": 736,
    "complement": "Apt 31",
    "latitude": -23.976815351036432,
    "longitude": -46.297928631145886,
    "isDumpSpot": true
  }
}



Busca de um ponto de coleta

GET /dumpSpot/:dumpSpot_id - NO BODY

Bearer Token Required

Em caso de sucesso, a resposta será:

GET /dumpSpot/:dumpSpot_id - FORMATO DA RESPOSTA - STATUS 200

{
    "dumpSpot_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "name": "ONG NatureLive",
    "address":{
        "address_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
        "zipCode": "11020325",
        "street": "AV. Afonso Pena",
        "number": 736,
        "complement": "Apt 121",
        "latitude": -23.976815351036432,
        "longitude": -46.297928631145886,
        "isDumpSpot": true
    }
}



Atualização de um ponto de coleta

PATCH /dumpSpot/:dumpSpot_id - FORMATO DA REQUISIÇÃO

Bearer Token Required

{
  "name": "ONG NatLive"
}

Em caso de sucesso, a resposta será:

PATCH /dumpSpot/:dumpSpot_id - FORMATO DA RESPOSTA - STATUS 200

{
    "dumpSpot_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
    "name": "ONG NatLive",
    "address":{
        "address_id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
        "zipCode": "11020325",
        "street": "AV. Afonso Pena",
        "number": 736,
        "complement": "Apt 121",
        "latitude": -23.976815351036432,
        "longitude": -46.297928631145886,
        "isDumpSpot": true
    }
}



About

API that allows the user to find selective garbage collection points according to the garbage they want to discard, using geopositioning, and also allows the user to register new selective garbage collection hosts.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • TypeScript 91.0%
  • Shell 5.0%
  • Dockerfile 4.0%