Skip to content

Commit

Permalink
Create SurveyMailer
Browse files Browse the repository at this point in the history
  • Loading branch information
Bojidarist committed Sep 9, 2021
1 parent faf373f commit c09d0ef
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 1 deletion.
2 changes: 2 additions & 0 deletions app/controllers/surveys_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ def create
end
end

SurveyMailer.with(username: current_user.username, survey: @survey).survey_created.deliver_later

redirect_to @survey
else
render "new"
Expand Down
2 changes: 1 addition & 1 deletion app/mailers/application_mailer.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class ApplicationMailer < ActionMailer::Base
default from: 'from@example.com'
default from: 'system@railsurveys.com'
layout 'mailer'
end
9 changes: 9 additions & 0 deletions app/mailers/survey_mailer.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
class SurveyMailer < ApplicationMailer
default from: "[email protected]"

def survey_created
@username = params[:username]
@survey = params[:survey]
mail(to: "[email protected]", subject: "New survey created by #{ @username }")
end
end
16 changes: 16 additions & 0 deletions app/views/survey_mailer/survey_created.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>The survey <%= @survey.question %> was created by <%= @username %></h1>

<h2>Answers:</h2>
<% @survey.answers.each do |answer| %>
<p><%= answer.description %></p>
<% end %>
<%= link_to "Survey Page", @survey %>
</body>
</html>
8 changes: 8 additions & 0 deletions app/views/survey_mailer/survey_created.text.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
The survey <%= @survey.question %> was created by <%= @username %>

Answers:
<% @survey.answers.each do |answer| %>
- <%= answer.description %>
<% end %>

Survey Page - <%= survey_url(@survey) %>
6 changes: 6 additions & 0 deletions test/mailers/previews/survey_mailer_preview.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Preview all emails at http:https://localhost:3000/rails/mailers/survey_mailer
class SurveyMailerPreview < ActionMailer::Preview
def survey_created
SurveyMailer.with(username: User.first.username, survey: Survey.first).survey_created
end
end
7 changes: 7 additions & 0 deletions test/mailers/survey_mailer_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
require 'test_helper'

class SurveyMailerTest < ActionMailer::TestCase
# test "the truth" do
# assert true
# end
end

0 comments on commit c09d0ef

Please sign in to comment.