Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backend - permitir a atualização do estado #67

Open
hartmannjean opened this issue Feb 15, 2024 · 13 comments
Open

backend - permitir a atualização do estado #67

hartmannjean opened this issue Feb 15, 2024 · 13 comments
Assignees
Labels
enhancement New feature or request

Comments

@hartmannjean
Copy link

hartmannjean commented Feb 15, 2024

Alterar a tarefa para permitir a edição parcial dos campos.

@viniciuscosmome viniciuscosmome self-assigned this Feb 15, 2024
@viniciuscosmome viniciuscosmome added the bug Something isn't working label Feb 15, 2024
@viniciuscosmome viniciuscosmome changed the title BACKEND Retornar task marcadas como prontas - BUG backend - permitir a atualização do estado Feb 15, 2024
@viniciuscosmome viniciuscosmome added enhancement New feature or request and removed bug Something isn't working labels Feb 15, 2024
@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Feb 15, 2024

Atualizado de bug para feature porque o recurso que estava faltando já está criado, o que está faltando é o recurso de atualização de tarefa.

@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Mar 11, 2024

  • marcar o card como concluído
  • possibilidade de enviar apenas as propriedades que serão realmente alteradas
  • corrigir o fuso horário para 'ptBR'
  • o campo de data e hora serem mesclados em um único campo

@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Mar 12, 2024

Propriedades

name:
  type: string
  details: Guarda o nome da tarefa
description:
  type: string
  details: Guarda a descrição da tarefa
date:
  type: string
  pattern: YYYY-MM-DD HH:MM
  details: Guarda data e hora da tarefa
checked:
  type: boolean
tag:
  type: string
  options:
    - application
    - account
    - exercise
    - beauty
    - literature
priority:
  type: string
  options:
    - low
    - medium
    - high
    - urgent
category:
  type: string
  options:
    - personal
    - study
    - finance
    - career
    - health

@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Mar 12, 2024

Adicionar uma tarefa

Path: /tasks
Method: POST
Headers:
  Content-Type: application/json
  Authorization: Bearer ACCESS_TOKEN
Body:
  name: required
  description: required
  date: required
  tag: required
  priority: required
  category: required

Resposta caso sucesso

{
  "message": "Tarefa criada com sucesso!"
}

@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Mar 12, 2024

Pegar todas as tarefas do mês e ano informados

Path: /tasks
Method: GET
Headers:
  Authorization: Bearer ACCESS_TOKEN
QueryParams:
  month: required
  year: required
Exemplo de url:
/tasks?month=1&year=2024

Resposta caso sucesso

{
  "count": 7,
  "tasks": [
    {
      "id": 8,
      "name": "Nome desta tarefa",
      "description": "Descrição da tarefa",
      "date": "2024-03-12T13:00:00.000Z",
      "tag": "exercise",
      "category": "study",
      "priority": "urgent",
      "checked": false
    },
    {
      "id": 3,
      "name": "Nome desta tarefa",
      "description": "Descrição da tarefa",
      "date": "2024-03-12T13:00:00.000Z",
      "tag": "exercise",
      "category": "study",
      "priority": "medium",
      "checked": false
    },
    ...,
  ]
}

@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Mar 12, 2024

Pegar a tarefa com o ID informado

Path: /tasks/:id
Method: GET
Headers:
  Authorization: Bearer ACCESS_TOKEN
UrlParam:
  id: required
Exemplo de url:
/tasks/33

Resposta caso sucesso

{
  "task": {
    "id": 2,
    "name": "Nome desta tarefa",
    "description": "Descrição da tarefa",
    "date": "2024-03-12T18:42:00.000Z",
    "tag": "exercise",
    "priority": "medium",
    "category": "study",
    "checked": false
  }
}

@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Mar 12, 2024

Editar uma tarefa

É obrigatório editar ao menos um campo!

Path: /tasks
Method: PATCH
Headers:
  Content-Type: application/json
  Authorization: Bearer ACCESS_TOKEN
Body:
  id: required
  name: optional
  description: optional
  date: optional
  tag: optional
  priority: optional
  category: optional
  checked: optional

Resposta caso sucesso

{
  "updated": true
}

@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Mar 12, 2024

Deletar a tarefa com o ID informado

Path: /tasks/:id
Method: DELETE
Headers:
  Authorization: Bearer ACCESS_TOKEN
UrlParam:
  id: required
Exemplo de url:
/tasks/33

Resposta caso sucesso

{
  "deleted": true
}

@viniciuscosmome
Copy link
Collaborator

viniciuscosmome commented Mar 14, 2024

@RoutinelyOrganization/quality-assurance

Todas as rotas de tarefas foram atualizadas para aceitar as novas mudanças:

  • Unificar o campo de date e hora
  • Padroniza o horário para GMT-0300 usado no Brasil:
    Horário enviado: 2024-01-21 13:40
    Horário retornado: 2024-01-21T16:40:00.000Z
  • Permitir a atualização de campos separados. Antes, era obrigatório o envio de todos os dados da tarefa, mesmo que a alteração ocorresse em um único campo.

Antes de continuar:

  1. Sincronizar com a versão mais atual da branch develop
  2. Executar as migrações da base de dados (isso irá apagar os dados que contém muitos conflitos)
  3. iniciar a aplicação

Happy path

Todas as rotas foram alteradas.

# criar uma tarefa
# todos os campos são obrigatórios
POST /tasks
Authorization: Bearer accessToken
Content-Type: application/json

Body {
  "name": "Uma atividade normal",
  "description": "Descrição personalizada da atividade",
  "date": "2024-04-01 04:20",
  "priority": "low",
  "tag": "application",
  "category": "personal",
}
# buscar uma tarefa
GET /tasks/:id
Authorization: Bearer accessToken
# buscar muitas tarefas
GET /tasks?month=3&year=2024
Authorization: Bearer accessToken
# alterar uma tarefa
# todas as propriedades exceto o ID são opcionais
PATCH /tasks
Authorization: Bearer accessToken
Content-Type: application/json

Body {
  "id": 1,
  "name": "Uma atividade normal",
  "description": "Descrição personalizada da atividade",
  "date": "2024-04-01 04:20",
  "priority": "low",
  "tag": "application",
  "category": "personal",
  "checked": false
}
# excluir uma tarefa
DELETE /tasks/:id
Authorization: Bearer accessToken

@ellensilva
Copy link

@viniciuscosmome, tudo bem?
Essa task está em um ambiente que eu ou a @lilianekassab conseguimos testar?
Tentamos chamar o POST para criar a task e retornou um 400 informando que o campo hour é obrigatório
cURL
curl --location 'https://routinely-api-dev.onrender.com/tasks' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer 2a21855988562f9b453b42659f892cdf37a16677' \ --data '{ "name": "Primeiro Teste", "date": "2024-09-02", "description": "Primeiro Teste via api", "priority": "medium", "tag": "literature", "category": "personal" }'
Evidencia:

Image

@viniciuscosmome
Copy link
Collaborator

@ellensilva , essa task não foi homologada. Ela está na branch develop

@lilianekassab
Copy link

Evidências de testes

Criando uma tarefa:

Image

Buscar tarefa:

Image

Excluir tarefa:

Image

@ellensilva
Copy link

Testes finalizados!
Cenários testados:
Obter tarefas
[NO] Campo Nome maior que 50 caracteres
[Yes] Campo Descrição menor que 1000 caracteres
[NO] Campo Descrição maior que 1000 caracteres
[NO] Data inferior que atual
[NO] Data invalida
[NO] Obter detalhe da tarefa inexistente
[YES] Obter detalhe da tarefa existente
[NO] Obter detalhe da tarefa que não é sua
[YES] Obter tarefas passando Mês e ano
[NO] Obter tarefas passando Mês inexistente
Alterar campos nome e descrição
Adicionar caracteres especiais
Adiciona tag
Passar somente o Id
Alterar sem passar o Id
[NO] Deletar task nao sua
[NO] Alterar tarefas nao sua
[YES] Deletar task existente
Deletar task inexistente

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants