Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T taskee_backend
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Taskee
  • taskee_backend
  • Merge requests
  • !40

Merged
Created Nov 14, 2025 by Suzan Stockey Pereira@suzan.pereira😊Developer

fix: Implementa reordenação atômica de tasks ao deletar

  • Overview 0
  • Commits 3
  • Pipelines 2
  • Changes 3

Descrição

Este MR refatora o método delete_task no task_service.py para garantir que a exclusão de uma tarefa seja acompanhada da reordenação das sequences das tarefas seguintes através de uma operação atômica. Para garantir a integridade dos dados, essa lógica foi implementada de forma atômica usando um WriteBatch do Firestore.

Implementação

    1. Um novo batch = self.db.batch() é criado.
    1. O documento a ser deletado é lido para obter sua sequence.
    1. A operação de delete é adicionada ao lote (batch.delete(...)).
    1. Uma query busca todas as tarefas com sequence maior que a da tarefa deletada.
    1. Um loop for adiciona todas as operações de update (sequence - 1) ao mesmo lote (batch.update(...)).
    1. batch.commit() é chamado, executando todas as operações (o delete e todos os updates) de uma só vez.
    1. Se qualquer passo falhar, o commit é revertido e o banco de dados permanece no estado original, garantindo 100% de consistência.

Como testar

    1. Crie um evento com múltiplas tarefas (ex: 5 tarefas, com sequence de 1 a 5).
    1. Pelo frontend (ou API), delete uma tarefa do meio (ex: a tarefa de sequence: 3).
    1. Verifique se:
    • A tarefa foi corretamente removida.
    • As sequences das tarefas seguintes foram atualizadas (ex: a antiga tarefa 4 agora é 3, e a antiga 5 agora é 4).
    • A sequência está correta e sem números faltando.
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: fix/reorder-sequence-when-delete-task