NAME

WebService::Raygun::Message - A message to be sent to raygun.io

SYNOPSIS

use WebService::Raygun::Message;


# The Raygun.io API expects something like this:
my $data = {
      'occurredOn' => string, # ISO 8601
      'details'    => {
          'machineName' => string,
          'version'     => string,
          'client'      => {
              'name'      => string,
              'version'   => string,
              'clientUrl' => string
          },
          'error' => {
              'innerError' => string,
              'data'       => object,
              'className'  => string,
              'message'    => string,
              'stackTrace' => [
                  {
                      'lineNumber' => number,
                      'className'  => string,
                      'fileName'   => string,
                      'methodName' => string,
                  }
              ]
          },
          'environment' => {
              'processorCount'          => number,
              'osVersion'               => string,
              'windowBoundsWidth'       => number,
              'windowBoundsHeight'      => number,
              'resolutionScale'         => string,
              'currentOrientation'      => string,
              'cpu'                     => string,
              'packageVersion'          => string,
              'architecture'            => string,
              'totalPhysicalMemory'     => number,
              'availablePhysicalMemory' => number,
              'totalVirtualMemory'      => number,
              'availableVirtualMemory'  => number,
              'diskSpaceFree'           => array,
              'deviceName'              => string,
              'locale'                  => string,
          },
          'tags'           => array,
          'userCustomData' => object,
          'request'        => {
              'hostName'    => string,
              'url'         => string,
              'httpMethod'  => string,
              'iPAddress'   => string,
              'queryString' => object,
              'form'        => object,
              'headers'     => object,
              'rawData'     => object,
          },
          'response' => {
              'statusCode' => number
          },
          'user' => {
              'identifier' => string
          },
          'context' => {
              'identifier' => string
          }
      }
  };

DESCRIPTION

This module assembles a request for raygun.io.

INTERFACE

occurred_on

Must be a valid datetime with timezone offset; eg 2014-06-30T04:30:30+100. Defaults to current time.

error

An instance of WebService::Raygun::Message::Error. The module uses Mouse type constraints to coerce the argument into a stacktrace object. This is a bit experimental and currently Moose::Exception, Mojo::Exception are supported.

user

Can be an email address or some other identifier. Note that if an email address is used, raygun.io will try to find a suitable Gravatar to display in the results.

request

See WebService::Raygun::Message::Request.

environment

See WebService::Raygun::Message::Environment.

user_custom_data

Some data from the user.

tags

client

version

machine_name

response_status_code

Default is 200.

prepare_raygun

Converts a Perl hash to JSON.

DEPENDENCIES

SEE ALSO