Merge pull request #1215 from Br3nda/likeable-dry

Likeable even more dry
This commit is contained in:
Daniel O'Connor
2017-02-14 10:27:51 +10:30
committed by GitHub

View File

@@ -6,26 +6,14 @@ class LikesController < ApplicationController
@like = Like.new(member: current_member, likeable: find_likeable)
return failed(@like, message: 'Unable to like') unless @like.likeable && @like.save
respond_to do |format|
format.html { redirect_to @like.likeable }
format.json do
render(json: render_json(@like, liked_by_member: true),
status: :created)
end
end
success(@like, liked_by_member: true, status_code: :created)
end
def destroy
@like = Like.find_by(id: params[:id], member: current_member)
return failed(@like, message: 'Unable to unlike') unless @like && @like.destroy
respond_to do |format|
format.html { redirect_to @like.likeable }
format.json do
render(json: render_json(@like, liked_by_member: false),
status: :ok)
end
end
success(@like, liked_by_member: false, status_code: :ok)
end
private
@@ -43,6 +31,16 @@ class LikesController < ApplicationController
}
end
def success(like, liked_by_member: nil, status_code: nil)
respond_to do |format|
format.html { redirect_to like.likeable }
format.json do
render(json: render_json(like, liked_by_member: liked_by_member),
status: status_code)
end
end
end
def failed(like, message)
respond_to do |format|
format.json { render(json: { 'error': message }, status: :forbidden) }