diff --git a/app/controllers/v1/learning_objects_controller.rb b/app/controllers/v1/learning_objects_controller.rb index acf088664b49696e47b3e05c1f5ee64d72dec512..47809f9a5a0563862feb38b197cd386aed59d2bf 100644 --- a/app/controllers/v1/learning_objects_controller.rb +++ b/app/controllers/v1/learning_objects_controller.rb @@ -13,7 +13,7 @@ class V1::LearningObjectsController < ApplicationController before_action :authenticate_user!, only: [:create, :update, :destroy, :tagging, :untagging] before_action :set_learning_object, only: [:show, :update, :destroy, :subjecting, :unsubjecting, :add_stages, :remove_stages] before_action :set_new_learning_object, only: :index - before_action :authorize!, except: [:create, :tagging, :untagging, :download] + before_action :authorize!, except: [:create, :tagging, :untagging, :download, :magnetlink] before_action :set_paper_trail_whodunnit, except: [:index, :show] def index @@ -67,6 +67,12 @@ class V1::LearningObjectsController < ApplicationController render status: :ok end + # GET /v1/learning_objects/magnetlink/:magnetlink + def magnetlink + render json: LearningObject.where(magnetlink: params[:magnetlink]) + end + + private def deleted_resource; LearningObject; end @@ -94,7 +100,7 @@ class V1::LearningObjectsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def learning_object_params return nil if params[:learning_object].nil? - params[:learning_object].permit(:author, :name, :curator, :object_type_id, :description, :license_id, :thumbnail, :software, :language_id, :link) + params[:learning_object].permit(:author, :name, :curator, :object_type_id, :description, :license_id, :thumbnail, :software, :language_id, :link, :magnetlink) end def extra_params diff --git a/app/serializers/learning_object_serializer.rb b/app/serializers/learning_object_serializer.rb index 18f5577953dd0a713308f0dd5880aaa595f249cc..dbf2316da5ffef31800398cd2389208f4475a2bb 100644 --- a/app/serializers/learning_object_serializer.rb +++ b/app/serializers/learning_object_serializer.rb @@ -53,7 +53,8 @@ class LearningObjectSerializer < ActiveModel::Serializer :complained, :shares_count, :created_at, - :updated_at + :updated_at, + :magnetlink belongs_to :publisher has_many :tags diff --git a/config/routes.rb b/config/routes.rb index c314a4533c81a8bfed191612d32c3f98c73169e8..df4dbc69e123122d8a2d473e6402c455aeb2d470 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -154,5 +154,6 @@ Rails.application.routes.draw do get '/subjects', to: 'subjects#index' get '/educational_stages', to: 'educational_stages#index' get '/activities/me', to: 'activities#me' + get 'learning_objects/magnetlink/:magnetlink', to: 'learning_objects#magnetlink', as: 'magnetlink_learning_objects' end end diff --git a/db/migrate/20170512092359_add_magnetlink_to_learning_object.rb b/db/migrate/20170512092359_add_magnetlink_to_learning_object.rb new file mode 100644 index 0000000000000000000000000000000000000000..6ee102f5debee49368eaa5e8f2f9e0094393be85 --- /dev/null +++ b/db/migrate/20170512092359_add_magnetlink_to_learning_object.rb @@ -0,0 +1,5 @@ +class AddMagnetlinkToLearningObject < ActiveRecord::Migration[5.0] + def change + add_column :learning_objects, :magnetlink, :string + end +end \ No newline at end of file