Add New Comment on your post notifications

This notification is sent only to the post owner, unless this person turned off the notifications.
A simple first step into the notifications by mail world :)

The mail contains a link to user profile
The link to the user profile is required to give an easy access to
notifications disabling.

Also having a preview for the notify_post_owner method

We can `Comment.first` because it is part of the db:seeds method. So
there should, in development, always be one.
This commit is contained in:
Kevin Vinhas
2021-01-29 00:49:27 +01:00
committed by Riccardo Graziosi
parent 9dfb13eff6
commit 007d08a051
10 changed files with 110 additions and 12 deletions

View File

@@ -1,6 +1,6 @@
class CommentsController < ApplicationController
before_action :authenticate_user!, only: [:create, :update]
def index
comments = Comment
.select(
@@ -23,6 +23,8 @@ class CommentsController < ApplicationController
comment = Comment.new(comment_params)
if comment.save
send_notifications(comment)
render json: comment.attributes.merge(
{ user_full_name: current_user.full_name, user_email: current_user.email}
), status: :created
@@ -55,14 +57,19 @@ class CommentsController < ApplicationController
end
private
def comment_params
params
.require(:comment)
.permit(:body, :parent_id, :is_post_update)
.merge(
user_id: current_user.id,
post_id: params[:post_id]
)
end
def comment_params
params
.require(:comment)
.permit(:body, :parent_id, :is_post_update)
.merge(
user_id: current_user.id,
post_id: params[:post_id]
)
def send_notifications(comment)
if comment.post.user.notifications_enabled?
UserMailer.notify_post_owner(comment: comment).deliver_later
end
end
end