2019-09-16 18:02:52 +02:00
|
|
|
class CommentsController < ApplicationController
|
2019-09-17 11:33:18 +02:00
|
|
|
before_action :authenticate_user!, only: [:create]
|
|
|
|
|
|
2019-09-16 18:02:52 +02:00
|
|
|
def index
|
|
|
|
|
comments = Comment
|
|
|
|
|
.where(post_id: params[:post_id])
|
|
|
|
|
.left_outer_joins(:user)
|
2019-09-17 17:04:19 +02:00
|
|
|
.select('comments.id, comments.body, comments.parent_id, comments.updated_at, users.full_name as user_full_name')
|
2019-09-16 18:02:52 +02:00
|
|
|
.order(updated_at: :desc)
|
|
|
|
|
|
|
|
|
|
render json: comments
|
|
|
|
|
end
|
2019-09-17 11:33:18 +02:00
|
|
|
|
|
|
|
|
def create
|
|
|
|
|
comment = Comment.new(comment_params)
|
|
|
|
|
|
|
|
|
|
if comment.save
|
2019-09-18 13:40:00 +02:00
|
|
|
render json: comment, status: :created
|
2019-09-17 11:33:18 +02:00
|
|
|
else
|
2019-09-18 13:40:00 +02:00
|
|
|
render json: {
|
|
|
|
|
error: I18n.t('errors.comment.create', message: comment.errors.full_messages)
|
|
|
|
|
}, status: :unprocessable_entity
|
2019-09-17 11:33:18 +02:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
def comment_params
|
|
|
|
|
params
|
|
|
|
|
.require(:comment)
|
2019-09-18 13:40:00 +02:00
|
|
|
.permit(:body, :parent_id)
|
2019-09-17 11:33:18 +02:00
|
|
|
.merge(
|
|
|
|
|
user_id: current_user.id,
|
|
|
|
|
post_id: params[:post_id]
|
|
|
|
|
)
|
|
|
|
|
end
|
2019-09-16 18:02:52 +02:00
|
|
|
end
|