forked from OpenNeo/impress
donation mailer
This commit is contained in:
parent
90b45dcecd
commit
f11f6374da
16 changed files with 101 additions and 7 deletions
2
Gemfile
2
Gemfile
|
@ -70,6 +70,8 @@ gem 'react-rails', '~> 0.8.0.0'
|
|||
|
||||
gem 'stripe', :git => 'https://github.com/stripe/stripe-ruby'
|
||||
|
||||
gem "letter_opener", :group => :development
|
||||
|
||||
# Needed for the new asset pipeline
|
||||
group :assets do
|
||||
|
||||
|
|
|
@ -174,6 +174,10 @@ GEM
|
|||
i18n (0.6.9)
|
||||
journey (1.0.4)
|
||||
json (1.8.1)
|
||||
launchy (2.4.2)
|
||||
addressable (~> 2.3)
|
||||
letter_opener (1.2.0)
|
||||
launchy (~> 2.2)
|
||||
mail (2.5.4)
|
||||
mime-types (~> 1.16)
|
||||
treetop (~> 1.4.8)
|
||||
|
@ -336,6 +340,7 @@ DEPENDENCIES
|
|||
haml (~> 4.0.0)
|
||||
http_accept_language!
|
||||
json (~> 1.8.1)
|
||||
letter_opener
|
||||
memcache-client (~> 1.8.5)
|
||||
mini_magick (~> 3.4)
|
||||
msgpack (~> 0.5.3)
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
var donationForm = document.getElementById('donation-form');
|
||||
var amountField = donationForm.querySelector(
|
||||
'[name=donation\\[amount\\]]');
|
||||
var emailField = donationForm.querySelector(
|
||||
'[name=donation\\[donor_email\\]]');
|
||||
var tokenField = donationForm.querySelector(
|
||||
'[name=donation\\[stripe_token\\]]');
|
||||
|
||||
|
@ -10,6 +12,7 @@
|
|||
image: donationForm.getAttribute('data-checkout-image'),
|
||||
token: function(token) {
|
||||
tokenField.value = token.id;
|
||||
emailField.value = token.email;
|
||||
donationForm.submit();
|
||||
}
|
||||
});
|
||||
|
|
8
app/mailers/donation_mailer.rb
Normal file
8
app/mailers/donation_mailer.rb
Normal file
|
@ -0,0 +1,8 @@
|
|||
class DonationMailer < ActionMailer::Base
|
||||
default from: "matchu@openneo.net"
|
||||
|
||||
def thank_you_email(donation, recipient)
|
||||
@donation = donation
|
||||
mail(to: recipient, subject: 'Thanks for donating to Dress to Impress!')
|
||||
end
|
||||
end
|
|
@ -29,6 +29,7 @@ class Donation < ActiveRecord::Base
|
|||
donation.charge_id = charge.id
|
||||
donation.user_id = user.try(:id)
|
||||
donation.donor_name = user.try(:name)
|
||||
donation.donor_email = params[:donor_email]
|
||||
donation.secret = new_secret
|
||||
|
||||
num_features = amount / FEATURE_COST
|
||||
|
@ -42,6 +43,8 @@ class Donation < ActiveRecord::Base
|
|||
features.each(&:save!)
|
||||
end
|
||||
|
||||
DonationMailer.thank_you_email(donation, customer.email).deliver
|
||||
|
||||
donation
|
||||
end
|
||||
|
||||
|
|
38
app/views/donation_mailer/thank_you_email.html.erb
Normal file
38
app/views/donation_mailer/thank_you_email.html.erb
Normal file
|
@ -0,0 +1,38 @@
|
|||
<p>
|
||||
Hello, hello! I'm Matchu, loving father of Dress to Impress.
|
||||
I started building the site on a whim one day, and never expected it to
|
||||
really catch on—but here you are, proving that someone else out there loves
|
||||
Dress to Impress as much as I do <3 Thank you so much!
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Before I forget, let's get to receipt business.
|
||||
You donated
|
||||
<strong><%= number_to_currency @donation.amount / 100.0 %></strong>
|
||||
(thanks again, by the way!),
|
||||
and you can update the name and outfits on that donation whenever you like at
|
||||
<%= link_to donation_url(@donation), donation_url(@donation) %>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Anyway. I hope you enjoy our little thank-you gift (you <em>do</em> have some
|
||||
beautiful outfits for me to show off, right?), and that Dress to Impress
|
||||
continues to bring you joy :)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Oh! And, if you ever have anything to say to me, <em>please</em> let me know
|
||||
at <%= mail_to 'matchu@openneo.net' %>. I'm looking forward to any and all
|
||||
questions, comments, concerns, insults, treasure maps, love letters, or memes
|
||||
you send my way :D
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thanks again for your help! DTI <3s you.<br />
|
||||
—Matchu
|
||||
</p>
|
||||
|
||||
<p>
|
||||
P.S. Seriously. Reply to this email and tell me something.
|
||||
It'll make my day :D
|
||||
</p>
|
|
@ -14,14 +14,15 @@
|
|||
|
||||
%p
|
||||
%strong But enough about us. Let's talk about you!
|
||||
When we brag about you on our donors list, what should we say?
|
||||
When we brag about you on our #{link_to 'donors list', donate_path},
|
||||
what should we say?
|
||||
(If you'd rather take care of this later, no worries!
|
||||
Check your email for a copy of this URL.)
|
||||
|
||||
= form_for @donation, html: {id: 'edit-donation'} do |f|
|
||||
%ul
|
||||
%li.name
|
||||
= f.label :donor_name, "Your name on the donors page"
|
||||
= f.label :donor_name, "Your name on the donors list"
|
||||
= f.text_field :donor_name, placeholder: 'Anonymous'
|
||||
|
||||
- @features.each do |feature|
|
||||
|
|
|
@ -10,10 +10,14 @@
|
|||
'data-checkout-image' => image_path('default-preview.png'),
|
||||
'data-checkout-publishable-key' => Rails.configuration.stripe[:publishable_key] do
|
||||
= hidden_field_tag 'donation[stripe_token]'
|
||||
= hidden_field_tag 'donation[donor_email]'
|
||||
%header
|
||||
%p#donation-form-title
|
||||
Thanks for supporting Dress to Impress!
|
||||
%p#donation-form-subtitle
|
||||
Securely powered by #{link_to 'Stripe', 'https://stripe.com/'}.
|
||||
We never, ever see your payment info.
|
||||
%br
|
||||
All donations go directly to our hosting costs. Thanks for your help!
|
||||
%div
|
||||
= precede '$' do
|
||||
|
|
|
@ -15,6 +15,8 @@ OpenneoImpressItems::Application.configure do
|
|||
|
||||
# Don't care if the mailer can't send
|
||||
config.action_mailer.raise_delivery_errors = false
|
||||
config.action_mailer.default_url_options = {host: "impress.dev.openneo.net"}
|
||||
config.action_mailer.delivery_method = :letter_opener
|
||||
|
||||
config.active_support.deprecation = :log
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@ OpenneoImpressItems::Application.configure do
|
|||
|
||||
config.active_support.deprecation = :log
|
||||
|
||||
config.action_mailer.default_url_options[:host] = 'impress.dev.openneo.net'
|
||||
|
||||
config.threadsafe!
|
||||
end
|
||||
|
||||
|
|
|
@ -61,6 +61,21 @@ OpenneoImpressItems::Application.configure do
|
|||
# config.force_ssl = true
|
||||
|
||||
config.react.variant = :production
|
||||
|
||||
config.action_mailer.default_url_options = {host: "impress.openneo.net"}
|
||||
|
||||
config.action_mailer.delivery_method = :smtp
|
||||
config.action_mailer.smtp_settings = {
|
||||
:address => "mail.openneo.net",
|
||||
:port => 587,
|
||||
:domain => "openneo.net",
|
||||
:authentication => :login,
|
||||
:user_name => "matchu@openneo.net",
|
||||
:password => ENV.fetch("MATCHU_EMAIL_PASSWORD"),
|
||||
:enable_starttls_auto => false
|
||||
}
|
||||
config.action_mailer.raise_delivery_errors = true
|
||||
config.action_mailer.perform_deliveries = true
|
||||
end
|
||||
|
||||
LocalImpressHost = 'newimpress.openneo.net'
|
||||
|
|
5
db/migrate/20140910181819_add_email_to_donations.rb
Normal file
5
db/migrate/20140910181819_add_email_to_donations.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class AddEmailToDonations < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :donations, :donor_email, :string
|
||||
end
|
||||
end
|
11
db/schema.rb
11
db/schema.rb
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20140910030549) do
|
||||
ActiveRecord::Schema.define(:version => 20140910181819) do
|
||||
|
||||
create_table "auth_servers", :force => true do |t|
|
||||
t.string "short_name", :limit => 10, :null => false
|
||||
|
@ -107,13 +107,14 @@ ActiveRecord::Schema.define(:version => 20140910030549) do
|
|||
end
|
||||
|
||||
create_table "donations", :force => true do |t|
|
||||
t.integer "amount", :null => false
|
||||
t.string "charge_id", :null => false
|
||||
t.integer "amount", :null => false
|
||||
t.string "charge_id", :null => false
|
||||
t.integer "user_id"
|
||||
t.string "donor_name"
|
||||
t.string "secret"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "donor_email"
|
||||
end
|
||||
|
||||
create_table "donations_old", :force => true do |t|
|
||||
|
|
5
spec/mailers/donation_mailer_spec.rb
Normal file
5
spec/mailers/donation_mailer_spec.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
require "spec_helper"
|
||||
|
||||
describe DonationMailer do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
BIN
vendor/cache/launchy-2.4.2.gem
vendored
Normal file
BIN
vendor/cache/launchy-2.4.2.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/letter_opener-1.2.0.gem
vendored
Normal file
BIN
vendor/cache/letter_opener-1.2.0.gem
vendored
Normal file
Binary file not shown.
Loading…
Reference in a new issue