Class: MoxiworksPlatform::ActionLog

Inherits:
Resource
  • Object
show all
Defined in:
lib/moxiworks_platform/action_log.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Methods inherited from Resource

accept_header, attr_accessor, attributes, #attributes, auth_header, check_for_error_in_response, content_type_header, #float_attrs, headers, #initialize, #int_attrs, #method_missing, #numeric_attrs, #numeric_value_for, #to_hash

Constructor Details

This class inherits a constructor from MoxiworksPlatform::Resource

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class MoxiworksPlatform::Resource

Instance Attribute Details

#bodyString

the body of the log entry to be displayed for this ActionLog Entry

Returns:

  • (String)


30
31
32
# File 'lib/moxiworks_platform/action_log.rb', line 30

def body
  @body
end

#moxi_works_agent_idString

moxi_works_agent_id is the Moxi Works Platform ID of the agent which an ActionLog entry is or is to be associated with.

this must be set for any Moxi Works Platform transaction

Returns:

  • (String)

    the Moxi Works Platform ID of the agent



10
11
12
# File 'lib/moxiworks_platform/action_log.rb', line 10

def moxi_works_agent_id
  @moxi_works_agent_id
end

#partner_contact_idString

*your system’s* unique ID for the Contact

this must be set for any Moxi Works Platform transaction

Returns:

  • (String)

    your system’s unique ID for the contact



18
19
20
# File 'lib/moxiworks_platform/action_log.rb', line 18

def partner_contact_id
  @partner_contact_id
end

#titleString

the title to be displayed for this ActionLog Entry

Returns:

  • (String)


24
25
26
# File 'lib/moxiworks_platform/action_log.rb', line 24

def title
  @title
end

Class Method Details

.create(opts = {}) ⇒ MoxiworksPlatform::ActionLog

Creates a new ActionLog entry in Moxi Works Platform

Examples:

MoxiworksPlatform::ActionLog.create(
      moxi_works_agent_id: 'abc123',
      partner_contact_id: 'mySystemsUniqueContactID',
      title: 'New home keys were delivered to Firstname Lastname',
      body: 'Firstname Lastname were delivered their keys to1234 there ave',
  )

Parameters:

  • opts (Hash) (defaults to: {})

    named parameter Hash

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this ActionLog entry is to be associated

  • :partner_contact_id (String)

    REQUIRED Your system’s unique ID for the contact for whom the ActionLog entry is being created.

  • :title (String)

    REQUIRED A brief title for this ActionLog entry (85 characters or less)

  • :body (String)

    REQUIRED The body of this ActionLog entry (255 characters or less)

Returns:

Raises:

  • ::MoxiworksPlatform::Exception::ArgumentError if required named parameters aren’t included



52
53
54
# File 'lib/moxiworks_platform/action_log.rb', line 52

def self.create(opts={})
   self.send_request(:post, opts)
end

.search(opts = {}) ⇒ Array

Search an Agent’s ActionLog entries in Moxi Works Platform

Examples:

results = MoxiworksPlatform::ActionLog.search(
moxi_works_agent_id: '123abc',
   )

Parameters:

  • opts (Hash) (defaults to: {})

    named parameter Hash

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this ActionLog is associated

  • :partner_contact_id (String)

    REQUIRED Your system’s unique ID for the contact for whom the ActionLog entry is being created.

Returns:

  • (Array)

    containing MoxiworksPlatform::ActionLog objects formatted as follows:

Raises:

  • ::MoxiworksPlatform::Exception::ArgumentError if required named parameters aren’t included



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/moxiworks_platform/action_log.rb', line 71

def self.search(opts={})
  url ||= "#{MoxiworksPlatform::Config.url}/api/action_logs"
  required_opts = [:moxi_works_agent_id, :partner_contact_id]
  required_opts.each do |opt|
    raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
        opts[opt].nil? or opts[opt].to_s.empty?
  end
  results = []
  RestClient::Request.execute(method: :get,
                              url: url,
                              payload: opts, headers: self.headers) do |response|
    puts response if MoxiworksPlatform::Config.debug
    self.check_for_error_in_response(response)
    json = JSON.parse(response)
    json['actions'].each do |r|
      results << MoxiworksPlatform::ActionLog.new(r) unless r.nil? or r.empty?
    end
  end
  results
end

.send_request(method, opts = {}, url = nil) ⇒ MoxiworksPlatform::ActionLog

Send our remote request to the Moxi Works Platform

Parameters:

  • method (String)

    The HTTP method to be used when connecting; ex: :put, :post, :get

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this ActionLog entry is associated

  • :partner_contact_id (String)

    REQUIRED Your system’s unique ID for the contact for whom the ActionLog entry is being created.

  • :title (String)

    REQUIRED A brief title for this ActionLog entry (85 characters or less)

  • :body (String)

    REQUIRED The body of this ActionLog entry (255 characters or less)

Returns:

Raises:

  • ::MoxiworksPlatform::Exception::ArgumentError if required named parameters aren’t included



107
108
109
110
111
112
113
114
115
# File 'lib/moxiworks_platform/action_log.rb', line 107

def self.send_request(method, opts={}, url=nil)
  url ||= "#{MoxiworksPlatform::Config.url}/api/action_logs"
  required_opts = [:moxi_works_agent_id, :partner_contact_id, :title, :body]
  required_opts.each do |opt|
    raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
        opts[opt].nil? or opts[opt].to_s.empty?
  end
  super(method, opts, url)
end