nossas / bonde-server

API Rails
GNU General Public License v3.0
8 stars 5 forks source link

fix(blocks): Rollback to change position value only at validation #494

Closed lpirola closed 6 years ago

codecov[bot] commented 6 years ago

Codecov Report

Merging #494 into develop will decrease coverage by 0.01%. The diff coverage is 96.92%.

Impacted file tree graph

@@            Coverage Diff             @@
##           develop    #494      +/-   ##
==========================================
- Coverage    93.22%   93.2%   -0.02%     
==========================================
  Files          229     229              
  Lines         6933    6950      +17     
==========================================
+ Hits          6463    6478      +15     
- Misses         470     472       +2
Impacted Files Coverage Δ
spec/models/block_spec.rb 100% <100%> (ø) :arrow_up:
spec/support/blueprints.rb 98.3% <100%> (+0.01%) :arrow_up:
...ontrollers/mobilizations/blocks_controller_spec.rb 100% <100%> (ø) :arrow_up:
app/policies/block_policy.rb 100% <100%> (ø) :arrow_up:
spec/factories/mobilization.rb 98.91% <100%> (+0.01%) :arrow_up:
config/routes.rb 100% <100%> (ø) :arrow_up:
app/models/block.rb 96.15% <87.5%> (-3.85%) :arrow_down:
app/controllers/mobilizations/blocks_controller.rb 97.43% <93.33%> (-2.57%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 1edc051...b8c52ca. Read the comment docs.

hudsilva commented 6 years ago

Atualizações realizadas:

Método create POST /block Foi necessário atualizar o mesmo pois ao criar um novo bloco ele estourava erro caso não fosse um bloco válido. Obs: O front deverá que passar a position de um bloco novo ao cria-lo. (Será necessário devido a remoção do controle de posições no model Block (no after_save)

  • Removido before_validation : set_position and after_save :switch_position do model Block
  • Adicionado update_blocks: esse método recebe uma lista de id - position e atualiza os respectivos blocos
  • adicionado PUT /blocks nova rota para atualização das posições dos blocos
  • Atualização da policy block. Para que seja possível autorizar o acesso ao método batch_update via controller.

Extras: Aproveitei e corrigi alguns testes e factories utilizadas nessa parte.

@igr-santos A rota para atualizar a lista ficou

PUT /mobilizations/:mobilization_id/blocks

params:

{
    "mobilization_id": 1,
    "blocks": [{
            "id": 20,
            "position": 2
        },
        {
            "id": 21,
            "position": 1
        }
    ]
}
hudsilva commented 6 years ago

@lpirola acho legal você dar um check também nas mudanças :)