diff --git a/app/controllers/v1/learning_objects/attachment_controller.rb b/app/controllers/v1/learning_objects/attachment_controller.rb index 1ddbd2edde6de21cb022ededc28d321e389ecdf4..5df351e718147870b376c5e74601b7c41448bfa8 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 4ac9536247a78ee37011b3cf38c61039262a53bc..9f57093d4448e4ed255b84fbe3f98fdf428af6dd 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 867abf0491d52ceecfeb2a4e1857672698d9373b..4d192a099124204a71747713b40756e9c5e4daba 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 0000000000000000000000000000000000000000..f9f6597e303138c02ff3591e7a2b75132726433d --- /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 0000000000000000000000000000000000000000..dc68cf3047ca026d1157f074c288aa3965990784 --- /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 66dcafc6e9545e3bf53011f2668b9137f1c7b63b..0000000000000000000000000000000000000000 --- 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 159078d60e3bd25da62ac6597b94f47e500a9d27..0000000000000000000000000000000000000000 --- 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