Skip to content

Expose the API for Tariffs

Co-authored-by: iabsgeovanne t-geovanne@iabs.org.br

Closes #120 (closed)

Cria a model Tariff que modela os contratos de energia que cada campus tem. Essa model possui os atributos:

  • start_date: Data de início de vigência de determinado contrato
  • campus: Campus que está relacionado com esse contrato
  • regular_tariff: Custo do KWh das 0h-18h e 21h-23h59
  • high_tariff: Custo do KWh das 18h-21h

Cria o serializer TariffSerializer que converte objetos jsons para objetos python e vice-versa.

Cria a viewset TariffViewSet. Essa viewset faz o CRUD para a model Tariff e sobrescreve o método get_queryset para retornar somente as tarifas relacionadas com o campi es

Cria um NestedDefaultRouter para a viewset TariffViewSet. O NestedDefaultRouter é uma extensão do DefaultRouter, implementada pela biblioteca drf-nested-routers. Essa biblioteca é amplamente utilizada pela comunidade do django-rest-framework e a própria documentação recomenda o uso.

O resultado dessas modificações é a criação dos seguintes endpoints:

Método HTTP entrypoint Request Body funcionalidade
GET /campi/{campi_id}/tariffs/ Lista todas as tarifas de um determinado campus
GET /campi/{campi_id}/tariffs/{tariff_id} Retorna informações sobre a tarifa que possui id = tariff_id
POST /campi/{campi_id}/tariffs/ image Cria uma nova tarifa relacionada com o campi que possui o id={campi_id}
PUT /campi/{campi_id}/tariffs/{tariff_id} image Atualiza todos os atributos da tarifa que possui o id=tariff_id
PATCH /campi/{campi_id}/tariffs/{tariff_id} image Atualiza os atributos especificados na requisição da tarifa que possui o id=tariff_id
DELETE /campi/{campi_id}/tariffs/{tariff_id} Deleta a tarifa que possui o id=tariff_id

Merge request reports