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