Sha256: 1ad26895f1c79abe31410b2f9869951efd8c2871a4cae7fc696ad90fe0c9f09f

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

require 'browser'
require_dependency "tastes_bitter/application_controller"

module TastesBitter

  class JavascriptErrorsController < ApplicationController

    # Responsible for handling errors sent from the browser, parsing the data,
    # and sending the email with the information about the error.
    def create
      browser = Browser.new(ua: params["user_agent"])

      error_info = {
        message: params["message"],
        file_or_page: params["file_or_page"],
        line_number: params["line_number"],
        column_number: params["column_number"],
        user_agent: params["user_agent"],
        current_page: params["current_page"],
        platform: browser.platform.to_s.humanize,
        browser_name: browser.name,
        browser_version: browser.full_version,
        user_ip: request.remote_ip,
        referrer: request.env["HTTP_REFERER"],
        stack_trace: params["stack_trace"]
      }

      ::TastesBitter::JavascriptErrorsMailer.javascript_error(error_info).deliver_later

      respond_to do |format|
        format.js { render nothing: true, status: :ok }
      end
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tastes_bitter-0.0.2 app/controllers/tastes_bitter/javascript_errors_controller.rb