moxiworks_platform 0.9.0 → 0.10.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/README.md +3 -0
- data/lib/moxiworks_platform/agent.rb +6 -1
- data/lib/moxiworks_platform/buyer_transaction.rb +563 -0
- data/lib/moxiworks_platform/listing.rb +2 -7
- data/lib/moxiworks_platform/office.rb +165 -0
- data/lib/moxiworks_platform/resource.rb +5 -1
- data/lib/moxiworks_platform/seller_transaction.rb +520 -0
- data/lib/moxiworks_platform/task.rb +1 -1
- data/lib/moxiworks_platform/version.rb +1 -1
- data/lib/moxiworks_platform.rb +3 -0
- data/publish_docs.sh +26 -0
- metadata +6 -2
@@ -0,0 +1,165 @@
|
|
1
|
+
module MoxiworksPlatform
|
2
|
+
# = Moxi Works Platform Office
|
3
|
+
class Office < MoxiworksPlatform::Resource
|
4
|
+
|
5
|
+
# @!attribute moxi_works_office_id
|
6
|
+
#
|
7
|
+
# @return [String] the UUID of the office
|
8
|
+
attr_accessor :moxi_works_office_id
|
9
|
+
|
10
|
+
# @!attribute image_url
|
11
|
+
#
|
12
|
+
# @return [String] a URL to an image of the office.
|
13
|
+
attr_accessor :image_url
|
14
|
+
|
15
|
+
# @!attribute name
|
16
|
+
#
|
17
|
+
# @return [String] the name of the office
|
18
|
+
attr_accessor :name
|
19
|
+
|
20
|
+
# @!attribute address
|
21
|
+
#
|
22
|
+
# @return [String] the office's address, street and number
|
23
|
+
attr_accessor :address
|
24
|
+
|
25
|
+
# @!attribute address2
|
26
|
+
#
|
27
|
+
# @return [String] address cont. (ex. suite number)
|
28
|
+
attr_accessor :address2
|
29
|
+
|
30
|
+
# @!attribute city
|
31
|
+
#
|
32
|
+
# @return [String] the office's address, city
|
33
|
+
attr_accessor :city
|
34
|
+
|
35
|
+
# @!attribute county
|
36
|
+
#
|
37
|
+
# @return [String] the office's address, county
|
38
|
+
attr_accessor :county
|
39
|
+
|
40
|
+
# @!attribute state
|
41
|
+
#
|
42
|
+
# @return [String] the office's address, state
|
43
|
+
attr_accessor :state
|
44
|
+
|
45
|
+
# @!attribute zip_code
|
46
|
+
#
|
47
|
+
# @return [String] the office's address, zip code
|
48
|
+
attr_accessor :zip_code
|
49
|
+
|
50
|
+
# @!attribute alt_phone
|
51
|
+
#
|
52
|
+
# @return [String] the office's alternate phone number
|
53
|
+
attr_accessor :alt_phone
|
54
|
+
|
55
|
+
# @!attribute email
|
56
|
+
#
|
57
|
+
# @return [String] the office's email address
|
58
|
+
attr_accessor :email
|
59
|
+
|
60
|
+
# @!attribute facebook
|
61
|
+
#
|
62
|
+
# @return [String] the office's facebook page URL
|
63
|
+
attr_accessor :facebook
|
64
|
+
|
65
|
+
# @!attribute google_plus
|
66
|
+
#
|
67
|
+
# @return [String] the office's google_plus account
|
68
|
+
attr_accessor :google_plus
|
69
|
+
|
70
|
+
# @!attribute phone
|
71
|
+
#
|
72
|
+
# @return [String] the office's primary phone number
|
73
|
+
attr_accessor :phone
|
74
|
+
|
75
|
+
# @!attribute timezone
|
76
|
+
#
|
77
|
+
# @return [String] the office's timezone
|
78
|
+
attr_accessor :timezone
|
79
|
+
|
80
|
+
# @!attribute twitter
|
81
|
+
#
|
82
|
+
# @return [String] the office's twitter handle
|
83
|
+
attr_accessor :twitter
|
84
|
+
|
85
|
+
|
86
|
+
# Find an Office on the Moxi Works Platform
|
87
|
+
# @param [Hash] opts named parameter Hash
|
88
|
+
# @option opts [String] :moxi_works_office_id *REQUIRED* The Moxi Works Office ID for the office
|
89
|
+
#
|
90
|
+
# @return [MoxiworksPlatform::Office]
|
91
|
+
#
|
92
|
+
# @raise ::MoxiworksPlatform::Exception::ArgumentError if required
|
93
|
+
# named parameters aren't included
|
94
|
+
#
|
95
|
+
def self.find(opts={})
|
96
|
+
url = "#{MoxiworksPlatform::Config.url}/api/offices/#{opts[:moxi_works_office_id]}"
|
97
|
+
self.send_request(:get, opts, url)
|
98
|
+
end
|
99
|
+
|
100
|
+
def self.send_request(method, opts={}, url=nil)
|
101
|
+
url ||= "#{MoxiworksPlatform::Config.url}/api/offices"
|
102
|
+
required_opts = [:moxi_works_office_id]
|
103
|
+
raise ::MoxiworksPlatform::Exception::ArgumentError,
|
104
|
+
'arguments must be passed as named parameters' unless opts.is_a? Hash
|
105
|
+
required_opts.each do |opt|
|
106
|
+
raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
|
107
|
+
opts[opt].nil? or opts[opt].to_s.empty?
|
108
|
+
end
|
109
|
+
super(method, opts, url)
|
110
|
+
end
|
111
|
+
|
112
|
+
# Search For Offices in Moxi Works Platform
|
113
|
+
# @param [Hash] opts named parameter Hash
|
114
|
+
# @option opts [String] :moxi_works_company_id *REQUIRED* The Moxi Works Company ID For the search (use Company.search to determine available moxi_works_company_id)
|
115
|
+
#
|
116
|
+
#
|
117
|
+
# optional Search parameters
|
118
|
+
#
|
119
|
+
# @option opts [Integer] :page_number the page of results to return
|
120
|
+
#
|
121
|
+
# @return [Hash] with the format:
|
122
|
+
# {
|
123
|
+
# page_number: [Integer],
|
124
|
+
# total_pages: [Integer],
|
125
|
+
# offices: [Array] containing MoxiworkPlatform::Office objects
|
126
|
+
# }
|
127
|
+
#
|
128
|
+
#
|
129
|
+
# @raise ::MoxiworksPlatform::Exception::ArgumentError if required
|
130
|
+
# named parameters aren't included
|
131
|
+
#
|
132
|
+
# @example
|
133
|
+
# results = MoxiworksPlatform::Office.search(
|
134
|
+
# moxi_works_company_id: 'the_company',
|
135
|
+
# page_number: 2
|
136
|
+
# )
|
137
|
+
#
|
138
|
+
def self.search(opts={})
|
139
|
+
url = "#{MoxiworksPlatform::Config.url}/api/offices"
|
140
|
+
required_opts = [:moxi_works_company_id]
|
141
|
+
required_opts.each do |opt|
|
142
|
+
raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
|
143
|
+
opts[opt].nil? or opts[opt].to_s.empty?
|
144
|
+
end
|
145
|
+
results = []
|
146
|
+
json = { 'page_number': 1, 'total_pages': 0, 'offices':[]}
|
147
|
+
RestClient::Request.execute(method: :get,
|
148
|
+
url: url,
|
149
|
+
payload: opts, headers: self.headers) do |response|
|
150
|
+
puts response if MoxiworksPlatform::Config.debug
|
151
|
+
self.check_for_error_in_response(response)
|
152
|
+
json = JSON.parse(response)
|
153
|
+
json['offices'].each do |r|
|
154
|
+
results << MoxiworksPlatform::Office.new(r) unless r.nil? or r.empty?
|
155
|
+
end
|
156
|
+
json['offices'] = results
|
157
|
+
end
|
158
|
+
json
|
159
|
+
end
|
160
|
+
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
|
165
|
+
end
|
@@ -79,6 +79,10 @@ module MoxiworksPlatform
|
|
79
79
|
# maps Hash values to Instance variables for mapping JSON object values to our Class attributes
|
80
80
|
#
|
81
81
|
def initialize(hash={})
|
82
|
+
self.init_attrs_from_hash(hash)
|
83
|
+
end
|
84
|
+
|
85
|
+
def init_attrs_from_hash(hash={})
|
82
86
|
hash.each do |key,val|
|
83
87
|
instance_variable_set("@#{key}", val)
|
84
88
|
end
|
@@ -125,7 +129,7 @@ module MoxiworksPlatform
|
|
125
129
|
val = self.instance_variable_get("@#{attr_name}")
|
126
130
|
return val.to_i if val.is_a? Numeric and opts[:type] == :integer
|
127
131
|
return val if val.is_a? Numeric
|
128
|
-
return
|
132
|
+
return nil if val.nil? or val.empty?
|
129
133
|
val.gsub!(/[^[:digit:]|\.]/, '') if val.is_a? String
|
130
134
|
case opts[:type]
|
131
135
|
when :integer
|