No se pueden eliminar barcas si tienen consensos
This commit is contained in:
parent
a7dd195c20
commit
2bbe338065
3 changed files with 13 additions and 2 deletions
|
@ -78,14 +78,14 @@ class BarcasController < ApplicationController
|
||||||
|
|
||||||
# DELETE /barcas/:id
|
# DELETE /barcas/:id
|
||||||
#
|
#
|
||||||
# Elimina una barca y su tripulación
|
# Elimina una barca y su tripulación, solo si no tiene consensos
|
||||||
#
|
#
|
||||||
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
||||||
# nombre: @string, descripcion: @text, abordada: @bool }
|
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||||
def destroy
|
def destroy
|
||||||
@barca = current_pirata.barcas.find(params[:id])
|
@barca = current_pirata.barcas.find(params[:id])
|
||||||
|
|
||||||
if @barca.destroy
|
if @barca.consensos.count.zero? && @barca.destroy
|
||||||
notify(subject: :destroy, urgency: :high)
|
notify(subject: :destroy, urgency: :high)
|
||||||
render status: :no_content
|
render status: :no_content
|
||||||
else
|
else
|
||||||
|
|
|
@ -3,3 +3,4 @@
|
||||||
json.call(barca, :id, :created_at, :nombre, :descripcion)
|
json.call(barca, :id, :created_at, :nombre, :descripcion)
|
||||||
|
|
||||||
json.abordada @current_pirata.barcas.pluck(:id).include?(barca.id)
|
json.abordada @current_pirata.barcas.pluck(:id).include?(barca.id)
|
||||||
|
json.eliminable barca.consensos.count.zero?
|
||||||
|
|
|
@ -75,6 +75,16 @@ class BarcasControllerTest < ActionDispatch::IntegrationTest
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test 'no se pueden eliminar si ya tienen consensos' do
|
||||||
|
barca = create :barca, piratas: [@pirata]
|
||||||
|
barca.consensos << create(:consenso)
|
||||||
|
|
||||||
|
delete barca_url(barca), as: :json, headers: @auth
|
||||||
|
|
||||||
|
assert_equal 422, @response.status
|
||||||
|
assert barca.reload
|
||||||
|
end
|
||||||
|
|
||||||
test 'se pueden abandonar' do
|
test 'se pueden abandonar' do
|
||||||
barca = create :barca, piratas: [@pirata]
|
barca = create :barca, piratas: [@pirata]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue