moxiworks_platform 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +6 -0
- data/lib/moxiworks_platform/contact.rb +20 -4
- data/lib/moxiworks_platform/credentials.rb +1 -1
- data/lib/moxiworks_platform/exception.rb +3 -0
- data/lib/moxiworks_platform/resource.rb +17 -4
- data/lib/moxiworks_platform/version.rb +1 -1
- data/moxiworks_platform.gemspec +1 -2
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af96fed391f3936ebed6ede94c6f4b05d8ddf9d5
|
4
|
+
data.tar.gz: 1a4a034af70aad0fdbbe149a7d959d7ce0ed4150
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e37c415d0b7071b1a6fdd9913f6f79e33de27cd9e6659cc8e76b02f46785c7833c0332966048083cd4ca64d8154826468d39fc3f1326b898ac6e0908a152b01
|
7
|
+
data.tar.gz: 7b02fec0cc6fea7e4ae335748f9e9b22abfa27a96059f6b7b0b3d7b27c99eec6cc492c2ee3ebddf4bfffd690be8eb4e3c0774b38b2ec59433bd60f31d87dc8a4
|
data/Gemfile
CHANGED
@@ -24,7 +24,7 @@ module MoxiworksPlatform
|
|
24
24
|
# Moxi Works Platform ID for the Contact
|
25
25
|
#
|
26
26
|
# @return [String] Moxi Works Platform ID for the contact
|
27
|
-
attr_accessor :
|
27
|
+
attr_accessor :moxi_works_contact_id
|
28
28
|
|
29
29
|
|
30
30
|
# @!attribute business_website
|
@@ -534,7 +534,19 @@ module MoxiworksPlatform
|
|
534
534
|
# success = MoxiWorksPlatform::Contact.delete(moxi_works_agent_id: '123abcd', partner_contact_id: 'myUniqueContactId' )
|
535
535
|
#
|
536
536
|
def self.delete(opts={})
|
537
|
-
|
537
|
+
url = "#{MoxiworksPlatform::Config.url}/api/contacts/#{opts[:partner_contact_id]}"
|
538
|
+
required_opts = [:moxi_works_agent_id, :partner_contact_id]
|
539
|
+
required_opts.each do |opt|
|
540
|
+
raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
|
541
|
+
opts[opt].nil? or opts[opt].empty?
|
542
|
+
end
|
543
|
+
RestClient::Request.execute(method: :delete,
|
544
|
+
url: url,
|
545
|
+
payload: opts, headers: self.headers) do |response|
|
546
|
+
puts response if MoxiworksPlatform::Config.debug
|
547
|
+
json = JSON.parse(response)
|
548
|
+
json['status'] == 'success'
|
549
|
+
end
|
538
550
|
end
|
539
551
|
|
540
552
|
# Send our remote request to the Moxi Works Platform
|
@@ -614,7 +626,9 @@ module MoxiworksPlatform
|
|
614
626
|
url: url,
|
615
627
|
payload: opts, headers: self.headers) do |response|
|
616
628
|
puts response if MoxiworksPlatform::Config.debug
|
629
|
+
self.check_for_error_in_response(response)
|
617
630
|
json = JSON.parse(response)
|
631
|
+
return false if not json['status'].nil? and json['status'] =='fail'
|
618
632
|
contact = MoxiworksPlatform::Contact.new(json) unless json.nil? or json.empty?
|
619
633
|
end
|
620
634
|
contact
|
@@ -642,8 +656,8 @@ module MoxiworksPlatform
|
|
642
656
|
# @example
|
643
657
|
# contact = MoxiWorksPlatform::Contact.find(moxi_works_agent_id: '123abcd', partner_contact_id: 'myUniqueContactId' )
|
644
658
|
# success = contact.delete
|
645
|
-
def delete
|
646
|
-
MoxiworksPlatform::Contact.delete(
|
659
|
+
def delete
|
660
|
+
MoxiworksPlatform::Contact.delete(self.to_hash)
|
647
661
|
end
|
648
662
|
|
649
663
|
private
|
@@ -665,7 +679,9 @@ module MoxiworksPlatform
|
|
665
679
|
|
666
680
|
def numeric_value_for(attr_name, opts={})
|
667
681
|
val = self.instance_variable_get("@#{attr_name}")
|
682
|
+
return val.to_i if val.is_a? Numeric and opts[:type] == :integer
|
668
683
|
return val if val.is_a? Numeric
|
684
|
+
val.gsub!(/[^[:digit:]|\.]/, '') if val.is_a? String
|
669
685
|
case opts[:type]
|
670
686
|
when :integer
|
671
687
|
instance_variable_set("@#{attr_name}", (val.nil? or val.empty?) ? nil : val.to_i)
|
@@ -101,7 +101,7 @@ module MoxiworksPlatform
|
|
101
101
|
# Removing the secret access key from the default inspect string.
|
102
102
|
# @api private
|
103
103
|
def inspect
|
104
|
-
"#<#{self.class.name}
|
104
|
+
"#<#{self.class.name} platform_identifier=#{platform_identifier.inspect}>"
|
105
105
|
end
|
106
106
|
|
107
107
|
end
|
@@ -6,5 +6,8 @@ module MoxiworksPlatform
|
|
6
6
|
# an expected argument is not defined, or the argument is in an unexpected form
|
7
7
|
class ArgumentError < PlatformError; end
|
8
8
|
|
9
|
+
class AuthorizationError < PlatformError; end
|
10
|
+
|
11
|
+
class RemoteRequestFailure < PlatformError; end
|
9
12
|
end
|
10
13
|
end
|
@@ -30,7 +30,7 @@ module MoxiworksPlatform
|
|
30
30
|
{
|
31
31
|
Authorization: auth_header,
|
32
32
|
Accept: accept_header,
|
33
|
-
'Content-Type' =>
|
33
|
+
'Content-Type' => content_type_header
|
34
34
|
}
|
35
35
|
end
|
36
36
|
|
@@ -38,7 +38,8 @@ module MoxiworksPlatform
|
|
38
38
|
#
|
39
39
|
# @return [String] Authorization header content
|
40
40
|
def self.auth_header
|
41
|
-
raise
|
41
|
+
raise MoxiworksPlatform::Exception::AuthorizationError,
|
42
|
+
'MoxiworksPlatform::Credentials must be set before using' unless
|
42
43
|
MoxiworksPlatform::Credentials.set?
|
43
44
|
identifier = MoxiworksPlatform::Credentials.platform_identifier
|
44
45
|
secret = MoxiworksPlatform::Credentials.platform_secret
|
@@ -55,10 +56,23 @@ module MoxiworksPlatform
|
|
55
56
|
# formatted Content-Type header
|
56
57
|
#
|
57
58
|
# @return [String] Content-Type header content
|
58
|
-
def self.
|
59
|
+
def self.content_type_header
|
59
60
|
'application/x-www-form-urlencoded'
|
60
61
|
end
|
61
62
|
|
63
|
+
def self.check_for_error_in_response(response)
|
64
|
+
begin
|
65
|
+
json = JSON.parse(response)
|
66
|
+
rescue => e
|
67
|
+
raise MoxiworksPlatform::Exception::RemoteRequestFailure, "unable to parse remote response #{e}\n response:\n #{response}"
|
68
|
+
end
|
69
|
+
message = "unable to perform remote action on Moxi Works platform\n"
|
70
|
+
message << json['messages'].join(',') unless json['messages'].nil?
|
71
|
+
|
72
|
+
raise MoxiworksPlatform::Exception::RemoteRequestFailure, message if
|
73
|
+
not json['status'].nil? and (%w(error fail).include?(json['status']))
|
74
|
+
end
|
75
|
+
|
62
76
|
# maps Hash values to Instance variables for mapping JSON object values to our Class attributes
|
63
77
|
#
|
64
78
|
def initialize(hash={})
|
@@ -83,7 +97,6 @@ module MoxiworksPlatform
|
|
83
97
|
hash
|
84
98
|
end
|
85
99
|
|
86
|
-
|
87
100
|
end
|
88
101
|
|
89
102
|
end
|
data/moxiworks_platform.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["tres.wong-godfrey@moxiworks.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{Ruby Moxi Works Platform Client}
|
13
|
-
spec.homepage = '
|
13
|
+
spec.homepage = 'https://github.io/moxiworks-platform/moxiworks-ruby'
|
14
14
|
|
15
15
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
16
16
|
spec.bindir = "exe"
|
@@ -21,6 +21,5 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "rake", "~> 10.0"
|
22
22
|
spec.add_development_dependency "rspec", "~> 3.0"
|
23
23
|
spec.add_development_dependency 'rest-client'
|
24
|
-
spec.add_dependency 'hashie'
|
25
24
|
|
26
25
|
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.0
|
4
|
+
version: 0.1.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-04-
|
11
|
+
date: 2016-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: hashie
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
description:
|
84
70
|
email:
|
85
71
|
- tres.wong-godfrey@moxiworks.com
|
@@ -103,7 +89,7 @@ files:
|
|
103
89
|
- lib/moxiworks_platform/resource.rb
|
104
90
|
- lib/moxiworks_platform/version.rb
|
105
91
|
- moxiworks_platform.gemspec
|
106
|
-
homepage:
|
92
|
+
homepage: https://github.io/moxiworks-platform/moxiworks-ruby
|
107
93
|
licenses: []
|
108
94
|
metadata: {}
|
109
95
|
post_install_message:
|