Add scheduled email feature for reminders

This commit is contained in:
2020-02-12 14:19:27 +01:00
parent e4a317111c
commit 9ee37b42d8
13 changed files with 127 additions and 4 deletions

View File

@ -19,6 +19,7 @@ class RemindersController < ApplicationController
if @reminder.save
redirect_to @reminder, notice: 'Reminder was successfully created.'
set_email_schedule
else
render :new
end
@ -27,6 +28,7 @@ class RemindersController < ApplicationController
def update
if @reminder.update(reminder_params)
redirect_to @reminder, notice: 'Reminder was successfully updated.'
set_email_schedule
else
render :edit
end
@ -48,4 +50,8 @@ class RemindersController < ApplicationController
def reminder_params
params.require(:reminder).permit(:title, :body, :date, :user_id)
end
def set_email_schedule
ReminderMailer.schedule_email(@reminder, current_user.email).deliver_later!(wait_until: @reminder.date)
end
end

View File

@ -0,0 +1,6 @@
class ReminderMailer < ApplicationMailer
def schedule_email(reminder, recipient)
@reminder = reminder
mail to: recipient, subject: 'Reminder'
end
end

View File

@ -11,10 +11,12 @@
<body>
<%= yield %>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<hr>
<% if user_signed_in? %>
<p><%= link_to('Logout', destroy_user_session_path) %></p>
<p><%= link_to('Logout', destroy_user_session_path, method: 'delete') %></p>
<% end %>
</body>
</html>

View File

@ -0,0 +1,2 @@
<h1><%= @reminder.title %></h1>
<p><%= @reminder.body %></p>

View File

@ -0,0 +1,3 @@
<%= @reminder.title %>
<%= @reminder.body %>