Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Sharagoz/rails_exception_handler
Browse files Browse the repository at this point in the history
  • Loading branch information
bjorntrondsen committed Aug 29, 2017
2 parents 46dfdd6 + eef8c68 commit dcc0c13
Show file tree
Hide file tree
Showing 5 changed files with 143 additions and 1 deletion.
13 changes: 13 additions & 0 deletions app/mailers/error_mailer.rb
@@ -0,0 +1,13 @@
class ErrorMailer < ApplicationMailer

# Subject can be set in your I18n file at config/locales/en.yml
# with the following lookup:
#
# en.error_mailer.send_error_mail_to_admin.subject
#
def send_error_mail_to_admin(info,email)
@info = JSON.parse(info)
mail(to: email, subject: 'An error occured on your application')
end

end
61 changes: 61 additions & 0 deletions app/views/error_mailer/send_error_mail_to_admin.html.erb
@@ -0,0 +1,61 @@
<p>
Hi boss,
</p>
<p>
an error occured at <%= @info["created_at"] %>
</p>


<p>
TARGET URL <br/>
<%= @info["target_url"] %>
</p>


<% unless @info["referer_url"].blank? %>
<p>
REFERER URL <br/>
<%= @info["referer_url"] %>
</p>
<%end%>

<p>
PARAMETERS <br/>
<%= @info["params"] %>
</p>

<p>
USER AGENT <br/>
<%= @info["user_agent"] %>
</p>

<p>
USER INFORMATION <br/>
<%= @info["user_info"] %>
</p>

<p>
CLASS NAME<br/>
<%= @info["class_name"] %>

</p>

<% unless @info["message"].blank? %>
<p>
MESSAGE<br/>
<%= @info["message"] %>
</p>
<%end%>

<p>
TRACE <br/>
<%= @info["trace"] %>
</p>


<% unless @info["doc_root"].blank? %>
<p>
DOC ROOT <br/>
<%= @info["doc_root"] %>
</p>
<%end%>
61 changes: 61 additions & 0 deletions app/views/error_mailer/send_error_mail_to_admin.text.erb
@@ -0,0 +1,61 @@
<p>
Hi boss,
</p>
<p>
an error occured at <%= @info["created_at"] %>
</p>


<p>
TARGET URL <br/>
<%= @info["target_url"] %>
</p>


<% unless @info["referer_url"].blank? %>
<p>
REFERER URL <br/>
<%= @info["referer_url"] %>
</p>
<%end%>

<p>
PARAMETERS <br/>
<%= @info["params"] %>
</p>

<p>
USER AGENT <br/>
<%= @info["user_agent"] %>
</p>

<p>
USER INFORMATION <br/>
<%= @info["user_info"] %>
</p>

<p>
CLASS NAME<br/>
<%= @info["class_name"] %>

</p>

<% unless @info["message"].blank? %>
<p>
MESSAGE<br/>
<%= @info["message"] %>
</p>
<%end%>

<p>
TRACE <br/>
<%= @info["trace"] %>
</p>


<% unless @info["doc_root"].blank? %>
<p>
DOC ROOT <br/>
<%= @info["doc_root"] %>
</p>
<%end%>
2 changes: 2 additions & 0 deletions lib/rails_exception_handler/handler.rb
Expand Up @@ -32,6 +32,8 @@ def store_error
RailsExceptionHandler::Storage.send(strategy, @parsed_error.external_info)
elsif(strategy.class == Hash && strategy[:remote_url])
RailsExceptionHandler::Storage.remote_url(strategy[:remote_url][:target],@parsed_error.external_info)
elsif(strategy.class == Hash && strategy[:email])
RailsExceptionHandler::Storage.email(strategy[:email][:recipients],@parsed_error.external_info)
else
raise "RailsExceptionHandler: Unknown storage strategy #{strategy.inspect}"
end
Expand Down
7 changes: 6 additions & 1 deletion lib/rails_exception_handler/storage.rb
Expand Up @@ -28,7 +28,12 @@ def self.remote_url(target, info)
params = flatten_hash({:error_message => info})
Net::HTTP::post_form(uri, params)
end


# Notify application admin that an error occured
def self.email(recipients,info)
ErrorMailer.send_error_mail_to_admin(info.to_json,recipients).deliver_later unless recipients.blank?
end

private

# Credit: Hash flattening technique borrowed from Peter Marklund: http://marklunds.com/articles/one/314
Expand Down

0 comments on commit dcc0c13

Please sign in to comment.