All Known Implementing Classes:
ShelterControllerImpl

public interface ShelterController
Interface que define as operações de gerenciamento de abrigos.

Esta interface representa o controlador que manipula todas as operações relacionadas aos abrigos em nosso sistema. Define como o cliente (geralmente um front-end da web) deve interfacear com os serviços de back-end para criar e administrar abrigos.

As operações principais que ela define incluem a criação de novos abrigos, através de solicitações HTTP POST para a rota "/ create". A especificação completa dessas rotas e do códigos de status HTTP que eles podem retornar, encontra-se nos Javadoc dos métodos individuais.

Since:
1.0.0
Author:
diegoneves
  • Method Details

    • createShelter

      @PostMapping(value="/create", consumes="application/json", produces="application/json") org.springframework.http.ResponseEntity<ShelterCreatedResponse> createShelter(@RequestBody ShelterCreationRequest request)
      Método POST para a criação de um Abrigo.

      Este método recebe um objeto JSON que representa uma solicitação de criação de abrigo, a criação do abrigo é realizada no back-end, e retorna uma resposta que inclui os detalhes do abrigo criado.

      O objeto de solicitação deve ser fornecido no corpo da solicitação, com os seguintes campos:

      • shelterName: Nome do abrigo a ser criado.
      • address: Um objeto que representa o endereço do abrigo. Deve incluir rua, número, bairro, cidade, estado e CEP.
      • responsibleUserEmail: O e-mail do usuário responsável pelo abrigo.

      O método retornará um objeto JSON com os seguintes campos:

      • id: O ID gerado para o novo abrigo criado.
      • shelterName: O nome do abrigo criado.
      • address: Um objeto representando o endereço do abrigo criado.
      • responsibleUser: Um objeto representando o usuário responsável pelo abrigo.
      Parameters:
      request - objeto ShelterCreationRequest que representa a solicitação de criação de um abrigo que é mapeada do corpo da solicitação JSON.
      Returns:
      Retorna um ResponseEntity que encapsula a resposta da criação do abrigo. Esta resposta inclui o status HTTP da operação, bem como um corpo que é uma representação JSON do abrigo criado.
      Throws:
      org.springframework.web.server.ResponseStatusException - será lançada se a criação do abrigo falhar devido a problemas de validação ou problemas no servidor. A mensagem de erro será incluída na exceção.
    • receiveDonation

      @PostMapping(value="/donation", consumes="application/json", produces="application/json") org.springframework.http.ResponseEntity<ShelterInformationResponse> receiveDonation(@RequestBody ReceiveDonationRequest request)
      Método POST para o recebimento de doações.

      Este método recebe um objeto JSON que representa uma solicitação de recebimento de doação, o registro da doação é realizado no back-end, e retorna uma resposta que inclui os detalhes da doação recebida.

      O objeto de solicitação deve ser fornecido no corpo da solicitação, com os seguintes campos:

      • responsibleEmail: O e-mail do usuário responsável pelo recebimento da doação.
      • donationDTOS: Uma lista de doações que o abrigo está recebendo.

      O método retornará um objeto JSON com os seguintes campos:

      • shelterName: O nome do abrigo que recebeu a doação.
      • responsibleName: O nome da pessoa que está gerenciando as doações no abrigo.
      • responsibleEmail: O e-mail do responsável pelo recebimento das doações.
      • donationDTOS: Uma lista de objetos representando as doações recebidas.
      Parameters:
      request - objeto ReceiveDonationRequest que representa a solicitação de recebimento de uma doação que é mapeada do corpo da solicitação JSON.
      Returns:
      Retorna um ResponseEntity que encapsula a resposta do recebimento da doação. Esta resposta inclui o status HTTP da operação, bem como um corpo que é uma representação JSON das doações recebidas.
      Throws:
      org.springframework.web.server.ResponseStatusException - será lançada se o recebimento da doação falhar devido a problemas de validação ou problemas no servidor. A mensagem de erro será incluída na exceção.
    • findShelterByUserResponsibleEmail

      @GetMapping("/findShelter/{userResponsibleEmail}") org.springframework.http.ResponseEntity<ShelterInformationResponse> findShelterByUserResponsibleEmail(@PathVariable("userResponsibleEmail") String userResponsibleEmail)
      Método GET para encontrar um abrigo pelo email do usuário responsável.

      Este método recebe uma String que representa o email do usuário responsável e retorna uma resposta que inclui os detalhes do abrigo encontrado.

      O método retornará um objeto JSON com os seguintes campos:

      • shelterName: O nome do abrigo.
      • responsibleName: O nome da pessoa que está gerenciando as doações no abrigo.
      • responsibleEmail: O e-mail do responsável pelo recebimento das doações.
      • donationDTOS: Uma lista de objetos representando as doações recebidas.

      Returns:
      Retorna um ResponseEntity que encapsula a resposta do abrigo encontrado. Esta resposta inclui o status HTTP da operação, bem como um corpo que é uma representação JSON do abrigo.
      Throws:
      ShelterEntityFailuresException - se o usuário informado não for do tipo beneficiário ou não estiver cadastrado na base de dados. A mensagem de erro será incluída na exceção.
    • findAll

      @GetMapping org.springframework.http.ResponseEntity<org.springframework.data.domain.Page<ShelterInformationResponse>> findAll(org.springframework.data.domain.Pageable pageable)
      Método GET para encontrar todos os abrigos cadastrados.

      Este método recebe um Pageable que para que seja feito a paginação da pagina e retorna como resposta todos os ShelterInformationResponse cadastrados com paginação.

      O método retornará um objeto JSON com os seguintes campos:

      • shelterName: O nome do abrigo.
      • responsibleName: O nome da pessoa que está gerenciando as doações no abrigo.
      • responsibleEmail: O e-mail do responsável pelo recebimento das doações.
      • donationDTOS: Uma lista de objetos representando as doações recebidas.

      Returns:
      Retorna um ResponseEntity que encapsula a resposta do abrigo encontrado. Esta resposta inclui o status HTTP da operação, bem como um corpo que é uma representação JSON do abrigo.
      See Also:
      • Pageable
      • Page