From 38c32f6c46b1a6e56dc8777035b9ebdcae892de3 Mon Sep 17 00:00:00 2001 From: besermenji Date: Sun, 12 Jun 2016 20:26:25 +0200 Subject: [PATCH] App set to send emails in development, production variables are also set. --- .gitignore | 2 ++ config.ru | 14 +++++++++++++- report_generator.rb | 46 +++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..85045af --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.bundle +tmp \ No newline at end of file diff --git a/config.ru b/config.ru index 77772ef..fbb26c6 100644 --- a/config.ru +++ b/config.ru @@ -1,7 +1,19 @@ require 'rubygems' require 'bundler' +require 'pony' -Bundler.require +Bundler.require(:default, ENV['RACK_ENV'].to_sym) +if ENV['RACK_ENV'] == 'production' + Pony.options = { :via => :smtp, + :via_options => { :address => 'smtp.sendgrid.net', + :port => '587', + :user_name => ENV["SENDGRID_USERNAME"], + :password => ENV["SENDGRID_PASSWORD"], + :domain => 'ry-report-generator.herokuapp.com' } } +else + Pony.options = { :via => LetterOpener::DeliveryMethod, + :via_options => { :location => File.expand_path('../tmp/letter_opener', __FILE__)} } +end require './report_generator' run ReportGenerator diff --git a/report_generator.rb b/report_generator.rb index 5f61cb8..a30e1d5 100644 --- a/report_generator.rb +++ b/report_generator.rb @@ -1,7 +1,49 @@ require 'sinatra' +require 'letter_opener' +require 'pony' +require 'json' + class ReportGenerator < Sinatra::Base - get '/hi' do - "Hello World!" + + before do + unless request.body.read == "" + request.body.rewind + @request_payload ||= JSON.parse request.body.read + end + end + + get '/' do + "Hello World! Im just a poor app, nobody loves me." + end + + get '/report_sent' do + "Report sent!" end + + get '/something_went_wrong' do + "Oh noes! + You don't like the smell? + Maybe I don't like the smell that some cars produce? + I sure as hell don't like it when + people fart near me or if someone has + bad body odor. You get a sore throat, + maybe I get a headache + from prolonged exposure to + those smells. Should we make + everything that doesn't smell good illegal?" + end + + post '/send_report' do + if @request_payload && @request_payload["email"] + Pony.mail(:to => @request_payload["email"], + :from => 'noreply@receipt-yourself.com', + :subject => 'hi', + :body => "Hello there. It is #{DateTime.now}. This is just a test.") + redirect '/report_sent' + else + redirect '/something_went_wrong' + end + end + end \ No newline at end of file