moxiworks_platform 0.4.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8af1ad18e3aa537868efdc6515c282e8eb114f01
4
- data.tar.gz: 3cfdc524bfb1e218f72eb4481feea165822d7a99
3
+ metadata.gz: 072579124ac364093cd09aa3d4f38f51c9e989f3
4
+ data.tar.gz: df8c6f749772c71cea209cfb680e383f816541fa
5
5
  SHA512:
6
- metadata.gz: 6a5c8a0965120c82411b8b40e1f68167b98daad3902701ba67d3c9fcc76d09796b391b4dfaee322b955caf0d41d604652d749c2f411e27e115b0fb0f928ade04
7
- data.tar.gz: 271e1aee47e887a83830a58297b84de20844a5299e5e29756afa4cfcdae7fdea63119842f489034dd5989f0bc1e2dcf9c5d8f18c9dd78956e211de08fef0cdb0
6
+ metadata.gz: 92e57d0bb040aaf014780ec238c2ab823276151d01cf8f178eef3af957e0b6e80df4062a0b2955ad0ab49d8c28bf02b105a20498415ee8b5c72f3378f9ce3d5a
7
+ data.tar.gz: ccb695f90ae5533724c320871a6803eb9f81040e234ec9287d039c6220924a0fa9ca6911d2b919f47b721c3d14c07969d942604eb13010e69db0b9d4dc18bc3d
@@ -7,6 +7,7 @@ require 'moxiworks_platform/contact'
7
7
  require 'moxiworks_platform/agent'
8
8
  require 'moxiworks_platform/event'
9
9
  require 'moxiworks_platform/group'
10
+ require 'moxiworks_platform/action_log'
10
11
 
11
12
 
12
13
 
@@ -0,0 +1,117 @@
1
+ module MoxiworksPlatform
2
+ class ActionLog < MoxiworksPlatform::Resource
3
+ # @!attribute moxi_works_agent_id
4
+ # moxi_works_agent_id is the Moxi Works Platform ID of the agent which an ActionLog entry is
5
+ # or is to be associated with.
6
+ #
7
+ # this must be set for any Moxi Works Platform transaction
8
+ #
9
+ # @return [String] the Moxi Works Platform ID of the agent
10
+ attr_accessor :moxi_works_agent_id
11
+
12
+ # @!attribute partner_contact_id
13
+ # *your system's* unique ID for the Contact
14
+ #
15
+ # this must be set for any Moxi Works Platform transaction
16
+ #
17
+ # @return [String] your system's unique ID for the contact
18
+ attr_accessor :partner_contact_id
19
+
20
+ # @!attribute title
21
+ # the title to be displayed for this ActionLog Entry
22
+ #
23
+ # @return [String] -- Default ''
24
+ attr_accessor :title
25
+
26
+ # @!attribute body
27
+ # the body of the log entry to be displayed for this ActionLog Entry
28
+ #
29
+ # @return [String] -- Default ''
30
+ attr_accessor :body
31
+
32
+ # Creates a new ActionLog entry in Moxi Works Platform
33
+ # @param [Hash] opts named parameter Hash
34
+ # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this ActionLog entry is to be associated
35
+ # @option opts [String] :partner_contact_id *REQUIRED* Your system's unique ID for the contact for whom the ActionLog entry is being created.
36
+ # @option opts [String] :title *REQUIRED* A brief title for this ActionLog entry (85 characters or less)
37
+ # @option opts [String] :body *REQUIRED* The body of this ActionLog entry (255 characters or less)
38
+ #
39
+ # @return [MoxiworksPlatform::ActionLog]
40
+ #
41
+ # @raise ::MoxiworksPlatform::Exception::ArgumentError if required
42
+ # named parameters aren't included
43
+ #
44
+ # @example
45
+ # MoxiworksPlatform::ActionLog.create(
46
+ # moxi_works_agent_id: 'abc123',
47
+ # partner_contact_id: 'mySystemsUniqueContactID',
48
+ # title: 'New home keys were delivered to Firstname Lastname',
49
+ # body: 'Firstname Lastname were delivered their keys to1234 there ave',
50
+ # )
51
+ #
52
+ def self.create(opts={})
53
+ self.send_request(:post, opts)
54
+ end
55
+
56
+ # Search an Agent's ActionLog entries in Moxi Works Platform
57
+ # @param [Hash] opts named parameter Hash
58
+ # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this ActionLog is associated
59
+ # @option opts [String] :partner_contact_id *REQUIRED* Your system's unique ID for the contact for whom the ActionLog entry is being created.
60
+ #
61
+ # @return [Array] containing MoxiworksPlatform::ActionLog objects formatted as follows:
62
+ #
63
+ # @raise ::MoxiworksPlatform::Exception::ArgumentError if required
64
+ # named parameters aren't included
65
+ #
66
+ # @example
67
+ # results = MoxiworksPlatform::ActionLog.search(
68
+ # moxi_works_agent_id: '123abc',
69
+ # )
70
+ #
71
+ def self.search(opts={})
72
+ url ||= "#{MoxiworksPlatform::Config.url}/api/action_logs"
73
+ required_opts = [:moxi_works_agent_id, :partner_contact_id]
74
+ required_opts.each do |opt|
75
+ raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
76
+ opts[opt].nil? or opts[opt].empty?
77
+ end
78
+ results = []
79
+ RestClient::Request.execute(method: :get,
80
+ url: url,
81
+ payload: opts, headers: self.headers) do |response|
82
+ puts response if MoxiworksPlatform::Config.debug
83
+ self.check_for_error_in_response(response)
84
+ json = JSON.parse(response)
85
+ json['actions'].each do |r|
86
+ results << MoxiworksPlatform::ActionLog.new(r) unless r.nil? or r.empty?
87
+ end
88
+ end
89
+ results
90
+ end
91
+
92
+ # Send our remote request to the Moxi Works Platform
93
+ #
94
+ # @param [String] method The HTTP method to be used when connecting; ex: :put, :post, :get
95
+ # @param [Hash] opts
96
+ # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this ActionLog entry is associated
97
+ # @option opts [String] :partner_contact_id *REQUIRED* Your system's unique ID for the contact for whom the ActionLog entry is being created.
98
+ # @option opts [String] :title *REQUIRED* A brief title for this ActionLog entry (85 characters or less)
99
+ # @option opts [String] :body *REQUIRED* The body of this ActionLog entry (255 characters or less)
100
+ #
101
+ #
102
+ # @return [MoxiworksPlatform::ActionLog]
103
+ #
104
+ # @raise ::MoxiworksPlatform::Exception::ArgumentError if required
105
+ # named parameters aren't included
106
+ #
107
+ def self.send_request(method, opts={}, url=nil)
108
+ url ||= "#{MoxiworksPlatform::Config.url}/api/action_logs"
109
+ required_opts = [:moxi_works_agent_id, :partner_contact_id, :title, :body]
110
+ required_opts.each do |opt|
111
+ raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
112
+ opts[opt].nil? or opts[opt].empty?
113
+ end
114
+ super(method, opts, url)
115
+ end
116
+ end
117
+ end
@@ -1,5 +1,5 @@
1
1
  module MoxiworksPlatform
2
- # = Moxi Works Platform Event
2
+ # = Moxi Works Platform Group
3
3
  class Group < MoxiworksPlatform::Resource
4
4
  # @!attribute moxi_works_agent_id
5
5
  # moxi_works_agent_id is the Moxi Works Platform ID of the agent which the group is
@@ -11,7 +11,7 @@ module MoxiworksPlatform
11
11
  attr_accessor :moxi_works_agent_id
12
12
 
13
13
  # @!attribute moxi_works_group_id
14
- # your system's event ID for the event
14
+ # your system's group ID for the group
15
15
  #
16
16
  # @return [String] representing the name of the group on the Moxi Works Platform
17
17
  attr_accessor :moxi_works_group_name
@@ -22,9 +22,9 @@ module MoxiworksPlatform
22
22
  # @return [Array] of MoxiworksPlatform::Contact objects
23
23
  attr_reader :contacts
24
24
 
25
- # Find an Event your system has previously created in Moxi Works Platform
25
+ # Find a Group your system has previously created in Moxi Works Platform
26
26
  # @param [Hash] opts named parameter Hash
27
- # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this event is associated
27
+ # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this group is associated
28
28
  # @option opts [Integer] :moxi_works_group_id *REQUIRED* The Moxi Works Group ID for this group.
29
29
  #
30
30
  # @return [MoxiworksPlatform::Group]
@@ -43,12 +43,19 @@ module MoxiworksPlatform
43
43
  #
44
44
  def self.find(opts={})
45
45
  url = "#{MoxiworksPlatform::Config.url}/api/groups/#{opts[:moxi_works_group_name]}"
46
- self.send_request(:get, opts, url)
46
+ contacts = []
47
+ response = self.send_request(:get, opts, url)
48
+
49
+ response.contacts.each do |c|
50
+ contacts << MoxiworksPlatform::Contact.new(c) unless c.nil? or c.empty?
51
+ end
52
+ response.contacts = contacts
53
+ response
47
54
  end
48
55
 
49
56
  # Search an Agent's Groups in Moxi Works Platform
50
57
  # @param [Hash] opts named parameter Hash
51
- # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this event is associated
58
+ # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this group is associated
52
59
  # @option opts [String] :name optional name to search for. If no name is provided, all of the Agent's Groups will be returned
53
60
  #
54
61
  # @return [Array] containing MoxiworksPlatform::Group objects formatted as follows:
@@ -1,3 +1,3 @@
1
1
  module MoxiworksPlatform
2
- VERSION = '0.4.3'
2
+ VERSION = '0.5.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moxiworks_platform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tres Wong-Godfrey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-13 00:00:00.000000000 Z
11
+ date: 2016-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -83,6 +83,7 @@ files:
83
83
  - bin/console
84
84
  - bin/setup
85
85
  - lib/moxiworks_platform.rb
86
+ - lib/moxiworks_platform/action_log.rb
86
87
  - lib/moxiworks_platform/agent.rb
87
88
  - lib/moxiworks_platform/config.rb
88
89
  - lib/moxiworks_platform/contact.rb