Skip to content

Latest commit

 

History

History
87 lines (69 loc) · 3.69 KB

RULES.md

File metadata and controls

87 lines (69 loc) · 3.69 KB

Endpoint /api/guardian

  • Criar Guardian - POST /api/guardians

    • Qualquer um pode criar Guardian.
    • Não é necessário estar autenticado.
  • Atualizar Guardian - PUT /api/guardians/ID

    • Apenas o próprio usuário guardian pode atualizar seus dados.
    • É necessário estar autenticado.
  • Buscar por ID - GET /api/guardians/ID

    • Qualquer usuário autenticado pode buscar Guardian por ID.
    • Não retorna guardian deletado.
  • Buscar todos os Guardians - GET /api/guardians

    • Qualquer usuário autenticado pode buscar todos os guardians.
    • Não devolver guardians deletados.
  • Deletar Guardian por ID - DELETE /api/guardians/ID

    • Apenas o próprio usuário Guardian pode se deletar.
    • É necessário estar autenticado.
    • A ação de deletar não remove a entidade da base de dados, apenas muda a flag DELETED para true.

Endpoint /api/shelter

  • Criar Shelter - POST /api/shelter

    • Qualquer um pode criar Shelter.
    • Não é necessário estar autenticado.
  • Atualizar Shelter - PUT /api/shelters/ID

    • Apenas o próprio usuário shelter pode atualizar seus dados.
    • É necessário estar autenticado.
  • Buscar por ID - GET /api/shelters/ID

    • Qualquer usuário autenticado pode buscar Shelter por ID.
    • Não retorna shelter deletado.
  • Buscar todos os Shelters - GET /api/shelters

    • Qualquer usuário autenticado pode buscar todos os shelters.
    • Não retorna shelters deletados.
  • Deletar Shelter por ID - DELETE /api/shelters/ID

    • Apenas o próprio usuário Shelter pode se deletar.
    • É necessário estar autenticado.
    • A ação de deletar não remove a entidade da base de dados, apenas muda a flag deleted para true

Endpoint /api/pet

  • Criar Pet - POST /api/pet

    • Apenas usuário Shelter pode cadastrar Pet.
    • É necessário estar autenticado.
  • Atualizar Pet - PUT /api/pets/ID

    • Apenas o usuário shelter que cadastrou o Pet pode atualiza-lo.
    • É necessário estar autenticado.
  • Buscar por ID - GET /api/pets/ID

    • Qualquer usuário autenticado pode buscar Pet por ID.
    • Pet que esta em Shelter deletado não é retornado.
  • Buscar todos os Pets - GET /api/pets

    • Qualquer usuário autenticado pode buscar todos os pets.
    • A busca retorna apenas os pets não adotados
    • A busca não retorna pets que estão em shelters deletados.
  • Deletar Pet por ID - DELETE /api/pets/ID

    • Apenas o usuário shelter que cadastrou o Pet pode deleta-lo.
    • É necessário estar autenticado.
    • Pet que estiver relacionado a uma adoção não pode ser deletado.

Endpoint /api/adoptions

  • Adotar Pet - POST /api/adoptions

    • Apenas usuários Guardian podem realizar adoção.
    • É necessário estar autenticado.
    • Apenas Pets não adotados podem ser adotados.
    • Pets relacionados a Shelters deletados não podem ser adotados
  • Buscar todas as adoções - GET /api/adoptions

    • É necessário estar autenticado.
    • Essa busca retorna as adoções relacionadas com o usuário autenticado.
  • Atualizar status da Adoção - PUT /api/adoptions/ID/status

    • É necessário estar autenticado.
    • Apenas usuários Shelter podem atualizar status.
    • Quando o status é alterado para CONCLUDED a flag Pet.adopted é alterado para true.
    • Quando o status é alterado para ANALYSING ou CANCELED. a flag Pet.adopted é alterado para false.
  • Deletar Adoção - DELETE /api/adoptions/ID

    • É necessário estar autenticado.
    • Apenas o Shelter relacionado a Adoption pode deleta-la.