Newer
Older
class V1::CollectionsController < ApplicationController
Mauricio Giacomini Girardello
committed
include ::SociableController
include ::FollowableController
before_action :set_collection, only: [:show, :update, :destroy]
before_action :authenticate_user!, only: [:create, :update, :destroy]
Mauricio Giacomini Girardello
committed
# GET /v1/collections
# GET /v1/collections.json
def index
render json: Collection.all
end
Mauricio Giacomini Girardello
committed
# GET /v1/collections/1
# GET /v1/collections/1.json
Mauricio Giacomini Girardello
committed
render json: @collection
Mauricio Giacomini Girardello
committed
# POST /v1/collection
# POST /v1/collection.json
Mauricio Giacomini Girardello
committed
collection = Collection.new(collection_params)
Mauricio Giacomini Girardello
committed
if collection.save
render json: collection, status: :created
Mauricio Giacomini Girardello
committed
render json: collection.errors, status: :unprocessable_entity
end
end
# PUT/PATCH /v1/users/1
# PUT/PATCH /v1/users/1.json
def update
Mauricio Giacomini Girardello
committed
if @collection.update(collection_params)
render json: @collection, status: :ok
Mauricio Giacomini Girardello
committed
render json: @collection.errors, status: :unprocessable_entity
Mauricio Giacomini Girardello
committed
# DELETE /v1/collections/1
# DELETE /v1/collections/1.json
Mauricio Giacomini Girardello
committed
@collection.destroy
render nothing: true, status: :ok
end
private
Mauricio Giacomini Girardello
committed
# social concerns methods
def followable
set_collection
end
Mauricio Giacomini Girardello
committed
def sociable
set_collection
end
def set_collection
Mauricio Giacomini Girardello
committed
@collection ||= User.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def collection_params
Mauricio Giacomini Girardello
committed
params.require(:collection).permit(:name, :description, :owner_id, :owner_type, learning_objects: [])