From 25eb870f2170c9e3ec930363017800712ada8a9f Mon Sep 17 00:00:00 2001 From: Marcela Ribeiro de Oliveira <mro15@inf.ufpr.br> Date: Tue, 5 Dec 2017 11:02:27 -0200 Subject: [PATCH] update default attachment when delete attachment --- .../v1/learning_objects/attachment_controller.rb | 10 +++++++++- ...4_update_learning_object_attachments_foreign_key.rb | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20171205120824_update_learning_object_attachments_foreign_key.rb diff --git a/app/controllers/v1/learning_objects/attachment_controller.rb b/app/controllers/v1/learning_objects/attachment_controller.rb index 7bdee9b4..a0bfe1ac 100644 --- a/app/controllers/v1/learning_objects/attachment_controller.rb +++ b/app/controllers/v1/learning_objects/attachment_controller.rb @@ -36,7 +36,15 @@ class V1::LearningObjects::AttachmentController < ApplicationController return render status: :not_found if @learning_object.nil? || @attachment.nil? DeleteBitstreamWorker.perform_async(@attachment.id) - @attachment.destroy + if @learning_object.attachment == @attachment + @learning_object.attachment = nil + @learning_object.save + @attachment.destroy + @learning_object.reload + @learning_object.default_attachment + else + @attachment.destroy + end render status: :ok end diff --git a/db/migrate/20171205120824_update_learning_object_attachments_foreign_key.rb b/db/migrate/20171205120824_update_learning_object_attachments_foreign_key.rb new file mode 100644 index 00000000..f9f6597e --- /dev/null +++ b/db/migrate/20171205120824_update_learning_object_attachments_foreign_key.rb @@ -0,0 +1,6 @@ +class UpdateLearningObjectAttachmentsForeignKey < ActiveRecord::Migration[5.0] + def change + remove_foreign_key :learning_object_attachments, :learning_object_attachments + add_foreign_key :learning_object_attachments, :learning_object_attachments, column: :attachment_id, on_delete: :cascade + end +end -- GitLab