From 34cce86b57d8075a7a54438282b9d745108476d0 Mon Sep 17 00:00:00 2001
From: Marcela Ribeiro de Oliveira <mro15@inf.ufpr.br>
Date: Thu, 25 Jan 2018 11:40:56 -0200
Subject: [PATCH] Revert "Merge branch 'issue/275' into 'master'"

This reverts merge request !471
---
 .../v1/learning_objects/attachment_controller.rb    | 13 ++++---------
 app/models/learning_object/attachment.rb            |  7 ++++---
 .../learning_object/attachment_serializer.rb        |  3 +--
 ...pdate_learning_object_attachments_foreign_key.rb |  6 ++++++
 ...ing_object_attachments_foreign_key_on_cascade.rb |  5 +++++
 ...attachment_id_for_learning_object_attachments.rb |  7 -------
 ...dd_foreign_key_to_learning_object_attachments.rb |  8 --------
 7 files changed, 20 insertions(+), 29 deletions(-)
 create mode 100644 db/migrate/20171205120824_update_learning_object_attachments_foreign_key.rb
 create mode 100644 db/migrate/20171205140057_remove_learning_object_attachments_foreign_key_on_cascade.rb
 delete mode 100644 db/migrate/20180119174926_remove_attachment_id_for_learning_object_attachments.rb
 delete mode 100644 db/migrate/20180123124526_add_foreign_key_to_learning_object_attachments.rb

diff --git a/app/controllers/v1/learning_objects/attachment_controller.rb b/app/controllers/v1/learning_objects/attachment_controller.rb
index 1ddbd2ed..5df351e7 100644
--- a/app/controllers/v1/learning_objects/attachment_controller.rb
+++ b/app/controllers/v1/learning_objects/attachment_controller.rb
@@ -27,7 +27,7 @@ class V1::LearningObjects::AttachmentController < ApplicationController
 
   # GET /learning_objects/:learning_object_id/attachment
   def index
-    @attachment = paginate @attachment
+    @attachment = paginate LearningObject::Attachment.includes(:attachment)
     render json: @attachment
   end
 
@@ -68,18 +68,13 @@ class V1::LearningObjects::AttachmentController < ApplicationController
   end
 
   def update_params
-    params.permit(:learning_object_attachment_id, :learning_object_attachment_id_son, :infohash)
+    params.permit(:attachment_id, :infohash)
   end
 
   def set_objects
-    if current_user.try(:is_admin?)
-      @learning_object = LearningObject.unscoped.find(attachment_params[:learning_object_id])
-    else
-      @learning_object = LearningObject.find(attachment_params[:learning_object_id])
-    end
-
+    @learning_object = LearningObject.find(attachment_params[:learning_object_id])
     if ( attachment_params[:id].blank? )
-      @attachment = @learning_object.attachments
+      @attachment = @learning_object.attachment
     else
       @attachment = LearningObject::Attachment.find(attachment_params[:id])
     end
diff --git a/app/models/learning_object/attachment.rb b/app/models/learning_object/attachment.rb
index 4ac95362..9f57093d 100644
--- a/app/models/learning_object/attachment.rb
+++ b/app/models/learning_object/attachment.rb
@@ -45,9 +45,10 @@ class LearningObject::Attachment < ApplicationRecord
   include ::Thumbnailable
   belongs_to :learning_object
   scope :unknown_mime_type, ->() { where(format: 'Unknown') }
-  has_one :learning_object_attachment, as: :learning_object_attachment_id_son
-  belongs_to :learning_object_attachment
-
+  has_one :attachment, class_name: 'LearningObject::Attachment'
+  belongs_to :attachment, class_name: 'LearningObject::Attachment'
+  # has_and_belongs_to_many
+  # belongs_to
 
   def retrieve_url
     "#{DspaceService.link}/rest#{retrieve_link}"
diff --git a/app/serializers/learning_object/attachment_serializer.rb b/app/serializers/learning_object/attachment_serializer.rb
index 867abf04..4d192a09 100644
--- a/app/serializers/learning_object/attachment_serializer.rb
+++ b/app/serializers/learning_object/attachment_serializer.rb
@@ -34,6 +34,5 @@ class LearningObject::AttachmentSerializer < ActiveModel::Serializer
     :id_dspace,
     :thumbnail,
     :cache_link,
-    :learning_object_attachment_id,
-    :learning_object_attachment_id_son
+    :attachment_id
 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
diff --git a/db/migrate/20171205140057_remove_learning_object_attachments_foreign_key_on_cascade.rb b/db/migrate/20171205140057_remove_learning_object_attachments_foreign_key_on_cascade.rb
new file mode 100644
index 00000000..dc68cf30
--- /dev/null
+++ b/db/migrate/20171205140057_remove_learning_object_attachments_foreign_key_on_cascade.rb
@@ -0,0 +1,5 @@
+class RemoveLearningObjectAttachmentsForeignKeyOnCascade < ActiveRecord::Migration[5.0]
+  def change
+    remove_foreign_key :learning_object_attachments, :learning_object_attachments
+  end
+end
diff --git a/db/migrate/20180119174926_remove_attachment_id_for_learning_object_attachments.rb b/db/migrate/20180119174926_remove_attachment_id_for_learning_object_attachments.rb
deleted file mode 100644
index 66dcafc6..00000000
--- a/db/migrate/20180119174926_remove_attachment_id_for_learning_object_attachments.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-class RemoveAttachmentIdForLearningObjectAttachments < ActiveRecord::Migration[5.0]
-  def change
-    remove_index :learning_object_attachments, :attachment_id
-    remove_foreign_key :learning_object_attachments, :learning_object_attachments
-    remove_column :learning_object_attachments, :attachment_id
-  end
-end
diff --git a/db/migrate/20180123124526_add_foreign_key_to_learning_object_attachments.rb b/db/migrate/20180123124526_add_foreign_key_to_learning_object_attachments.rb
deleted file mode 100644
index 159078d6..00000000
--- a/db/migrate/20180123124526_add_foreign_key_to_learning_object_attachments.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-class AddForeignKeyToLearningObjectAttachments < ActiveRecord::Migration[5.0]
-  def change
-    add_column :learning_object_attachments, :learning_object_attachment_id, :integer
-    add_column :learning_object_attachments, :learning_object_attachment_id_son, :integer
-    add_foreign_key :learning_object_attachments, :learning_object_attachments, on_delete: :cascade
-    add_foreign_key :learning_object_attachments, :learning_object_attachments, column: :learning_object_attachment_id_son, on_delete: :nullify
-  end
-end
-- 
GitLab