Skip to content
This repository has been archived by the owner on Mar 25, 2023. It is now read-only.

A API criada para o projeto de AC1 da matéria de Orientação a Objeto 2

Notifications You must be signed in to change notification settings

h4ad-facens/facens-ac1-poo2

Repository files navigation

AC2 - Orientação a Objeto

O projeto foi gerado pelo start.spring.io para o projeto de AC1 da matéria de Orientação a Objeto 2.

A arquitetura para o projeto seguiu conforme imagem abaixo:

image

Heroku

Você pode testar a API no seguinte endereço do Heroku: https://facens-ac1-poo-2.herokuapp.com. Está com o URL de ac1 mas contém o código do projeto da AC2.

Insomnia

Se você possuir o Insomnia, e quiser testar por ele, baixe o arquivo insomnia.yaml e importe no seu Insomnia, ele possui todas as rotas criadas para essa API com os ambientes configurados para local e para o Heroku.

Rotas

Há as seguintes rotas:

Events

  • Get: /events

    • Busca todos os eventos, você pode passar os Query Params como page e limit para fazer paginação e seus detalhes são retornados nos Headers, e Query Params como name, description, emailContact ou startDate para filtrar os resultados ou fazer uma pesquisa.
    • Exemplo: /events?page=0&limit=1&name=Vinicius
    • Exemplo: /events?page=0&limit=1&startDate=2021-03-20
    • Exemplo: /events?page=0&limit=1&name=Vinicius
  • Post: /events

    • Cria um novo evento.
{
 "name": "Evento do Joga18",
 "description": "Será um evento legal",
 "place": "Facens",
 "emailContact": "vinicius.cardoso@facens.br",
 "startDate": "2021-03-21",
 "endDate": "2021-03-28",
 "startTime": "16:30:00",
 "endTime": "19:00:00",
 "amountFreeTickets": 10,
 "amountPayedTickets": 90,
 "priceTicket": 60.99,
 "adminId": 1
}
  • Get: /events/{eventId}

    • Busca um evento pelo seu ID.
  • Put: /events/{eventId}

    • Atualiza um evento pelo seu ID.
{
  "name": "Evento do Joga11",
  "description": "Será um evento legal para caramba.",
  "place": "Facens - LIGA",
  "emailContact": "vinicius.cardoso23@etec.sp.gov.br",
  "startDate": "2021-03-20",
  "endDate": "2021-03-22",
  "startTime": "13:00:00",
  "endTime": "15:00:00",
  "amountFreeTickets": 5,
  "amountPayedTickets": 95,
  "priceTicket": 99.99,
  "adminId": 2
}
  • Delete: /events/{eventId}
    • Remove um evento pelo seu ID.

Admins

  • POST: /admins
    • Cria um admin.
{
  "name": "Vinícius Lourenço",
  "email": "vinicius.cardoso@facens.br",
  "phoneNumber": "15988116120"
}
  • PUT: /admins/{adminId}
    • Edita um admin.
{
  "name": "Vinícius Lourenço 2",
  "email": "vinicius.cardoso2@facens.br",
  "phoneNumber": "15988116120"
}
  • GET: /admins/{adminId}

    • Busca um admin.
  • GET: /admins

    • Busca vários admins.
  • DELETE: /admins/{adminId}

    • Remove um admin.

Attendees

  • POST: /attendees
    • Cria um participante.
{
  "name": "Vinícius Lourenço",
  "email": "vinicius.cardoso@facens.br"
}
  • PUT: /attendees/{attendeeId}
    • Atualiza um participante.
{
  "name": "Vinícius Lourenço 2",
  "email": "vinicius.cardoso2@facens.br"
}
  • GET: /attendees/{attendeeId}

    • Busca um participante.
  • GET: /attendees

    • Busca vários participantes.
  • DELETE: /attendees/{attendeeId}

    • Remove um participante.
{
  "name": "Vinícius Lourenço 2",
  "email": "vinicius.cardoso2@facens.br"
}

Places

  • POST: /places
    • Cria um lugar.
{
  "name": "Casa do Joga10",
  "address": "Rua Monsenhor Benedito Mário Calazans"
}
  • PUT: /places/{placeId}
    • Atualiza um lugar.
{
  "name": "Casa do Joga10 2",
  "address": "Rua Monsenhor Benedito Mário Calazans 2"
}
  • GET: /places/{placeId}

    • Busca um lugar.
  • GET: /places

    • Busca vários lugares.
  • DELETE: /places/{placeId}

    • Remove um lugar.

events/{eventId}/places

  • POST: /events/{eventId}/places/{placeId}

    • Adiciona um lugar a um evento.
  • DELETE: /events/{eventId}/places/{placeId}

    • Remove um lugar a um evento.

events/{eventId}/tickets

  • GET: /events/{eventId}/tickets

    • Busca os Tickets de um evento.
  • POST: /events/{eventId}/tickets

    • Vende um ticket para um attendee.
    • Separação feita entre tickets pagos e gratuitos através do campo "type", onde 0 é gratuito e 1 é pago.
{
  "attendeId": 5,
  "type": 1
}
  • DEL: /events/{eventId}/tickets
    • Remove ticket vendido.
    • Separação feita entre tickets pagos e gratuitos através do campo "type", onde 0 é gratuito e 1 é pago.
{
  "attendeId": 5,
  "type": 0
}

Desenvolvedores

  • Vinícius Lourenço Claro Cardoso - 180618
  • Marcelo Zaguette Junior - 180998

About

A API criada para o projeto de AC1 da matéria de Orientação a Objeto 2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages