moxiworks_platform 0.1.0 → 0.1.1
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 +7 -2
- data/lib/moxiworks_platform/contact.rb +73 -20
- data/lib/moxiworks_platform/resource.rb +1 -0
- data/lib/moxiworks_platform/version.rb +1 -1
- data/moxiworks_platform.gemspec +2 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e8d7e2206d39d1362ad4ceefc7bf01bdfffef99
|
4
|
+
data.tar.gz: ebc93c1f26cd1dc020e9ed47a59c5f5509837c59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab84414000cc684c9bde839040e497824255a19f46bb49757f8a55035c64754df3eb41e0e110da8afff2e3ee110dfc93e967e58a3fe379e7b70efd288a549e6b
|
7
|
+
data.tar.gz: 7231087fc9c00c494242aca80635f7d6dc14308d08c649713bc2c56222afcf2ffc4ce97268fb25f3d4d97a190ff8b14840f21e77bc1fe7d1e799c48e4996864e
|
data/README.md
CHANGED
@@ -19,10 +19,15 @@ Or install it yourself as:
|
|
19
19
|
## Usage
|
20
20
|
|
21
21
|
```ruby
|
22
|
+
require 'moxiworks_platform'
|
23
|
+
|
24
|
+
|
22
25
|
platform_identifier = 'abc1234'
|
23
26
|
platform_secret = 'secretkey'
|
24
|
-
|
27
|
+
|
28
|
+
|
25
29
|
MoxiworksPlatform::Credentials.new(platform_identifier, platform_secret)
|
30
|
+
|
26
31
|
contact = MoxiworksPlatform::Contact.create(moxi_works_agent_id: '123abcd', partner_contact_id: 'my_unique_id')
|
27
32
|
```
|
28
33
|
|
@@ -34,5 +39,5 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
34
39
|
|
35
40
|
## Contributing
|
36
41
|
|
37
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
42
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/moxiworks-platform/moxiworks-ruby
|
38
43
|
|
@@ -19,14 +19,6 @@ module MoxiworksPlatform
|
|
19
19
|
# @return [String] your system's unique ID for the contact
|
20
20
|
attr_accessor :partner_contact_id
|
21
21
|
|
22
|
-
|
23
|
-
# @!attribute moxi_works_contact_id
|
24
|
-
# Moxi Works Platform ID for the Contact
|
25
|
-
#
|
26
|
-
# @return [String] Moxi Works Platform ID for the contact
|
27
|
-
attr_accessor :moxi_works_contact_id
|
28
|
-
|
29
|
-
|
30
22
|
# @!attribute business_website
|
31
23
|
# the full URL of the business website to be associated with this Contact
|
32
24
|
#
|
@@ -404,6 +396,11 @@ module MoxiworksPlatform
|
|
404
396
|
# @option opts [Integer] :search_min_year_built the minimum year built this contact has used as criteria when searching for a listing
|
405
397
|
# @option opts [String] :search_property_types property types this contact has searched for; ex: 'Single Family, Condo, Townhouse'
|
406
398
|
#
|
399
|
+
# @return [MoxiworksPlatform::Contact]
|
400
|
+
#
|
401
|
+
# @raise ::MoxiworksPlatform::Exception::ArgumentError if required
|
402
|
+
# named parameters aren't included
|
403
|
+
#
|
407
404
|
# @example
|
408
405
|
# MoxiworksPlatform::Contact.create(
|
409
406
|
# moxi_works_agent_id: '123abc',
|
@@ -421,7 +418,7 @@ module MoxiworksPlatform
|
|
421
418
|
# primary_phone_number: '123213',
|
422
419
|
# property_mls_id: '1232312abcv',
|
423
420
|
# secondary_phone_number: '1234567890')
|
424
|
-
#
|
421
|
+
#
|
425
422
|
def self.create(opts={})
|
426
423
|
self.send_request(:post, opts)
|
427
424
|
end
|
@@ -431,11 +428,60 @@ module MoxiworksPlatform
|
|
431
428
|
# @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this contact is to be associated
|
432
429
|
# @option opts [String] :partner_contact_id *REQUIRED* Your system's unique ID for this contact.
|
433
430
|
#
|
434
|
-
#
|
431
|
+
# @return [MoxiworksPlatform::Contact]
|
432
|
+
#
|
433
|
+
# @raise ::MoxiworksPlatform::Exception::ArgumentError if required
|
434
|
+
# named parameters aren't included
|
435
|
+
#
|
435
436
|
def self.find(opts={})
|
436
|
-
|
437
|
+
url = "#{MoxiworksPlatform::Config.url}/api/contacts/#{opts[:partner_contact_id]}"
|
438
|
+
self.send_request(:get, opts, url)
|
439
|
+
end
|
440
|
+
|
441
|
+
# Search an Agent's Contacts in Moxi Works Platform
|
442
|
+
# @param [Hash] opts named parameter Hash
|
443
|
+
# @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this contact is to be associated
|
444
|
+
#
|
445
|
+
# optional Search parameters
|
446
|
+
#
|
447
|
+
# @option opts [String] :contact_name full name of the contact
|
448
|
+
# @option opts [String] :email_address full email address of the contact
|
449
|
+
# @option opts [String] :phone_number full phone number of the contact
|
450
|
+
#
|
451
|
+
# @return [Array] containing MoxiworkPlatform::Contact objects
|
452
|
+
#
|
453
|
+
# @raise ::MoxiworksPlatform::Exception::ArgumentError if required
|
454
|
+
# named parameters aren't included
|
455
|
+
#
|
456
|
+
# @example
|
457
|
+
# results = MoxiworksPlatform::Contact.search(
|
458
|
+
# moxi_works_agent_id: '123abc',
|
459
|
+
# contact_name: 'george p warshington',
|
460
|
+
# )
|
461
|
+
#
|
462
|
+
def self.search(opts={})
|
463
|
+
url ||= "#{MoxiworksPlatform::Config.url}/api/contacts"
|
464
|
+
required_opts = [:moxi_works_agent_id]
|
465
|
+
required_opts.each do |opt|
|
466
|
+
raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
|
467
|
+
opts[opt].nil? or opts[opt].empty?
|
468
|
+
end
|
469
|
+
results = []
|
470
|
+
RestClient::Request.execute(method: :get,
|
471
|
+
url: url,
|
472
|
+
payload: opts, headers: self.headers) do |response|
|
473
|
+
puts response if MoxiworksPlatform::Config.debug
|
474
|
+
self.check_for_error_in_response(response)
|
475
|
+
json = JSON.parse(response)
|
476
|
+
json.each do |r|
|
477
|
+
results << MoxiworksPlatform::Contact.new(r) unless r.nil? or r.empty?
|
478
|
+
end
|
479
|
+
end
|
480
|
+
results
|
437
481
|
end
|
438
482
|
|
483
|
+
|
484
|
+
|
439
485
|
# Updates a previously created Contact in Moxi Works Platform
|
440
486
|
# @param [Hash] opts
|
441
487
|
# @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this contact is to be associated
|
@@ -443,7 +489,6 @@ module MoxiworksPlatform
|
|
443
489
|
#
|
444
490
|
# optional Contact parameters
|
445
491
|
#
|
446
|
-
# @option opts [String] :moxi_works_contact_id Moxi Works Platform contact ID
|
447
492
|
# @option opts [String] :business_website full url of a website associated with this contact
|
448
493
|
# @option opts [String] :contact_name full name of this contact in format "Firstname Middlename Lastname"
|
449
494
|
# @option opts [String, Enumerated] :gender can be "male" or "female" or "m" or "f"
|
@@ -497,6 +542,9 @@ module MoxiworksPlatform
|
|
497
542
|
#
|
498
543
|
# @return [MoxiworksPlatform::Contact]
|
499
544
|
#
|
545
|
+
# @raise ::MoxiworksPlatform::Exception::ArgumentError if required
|
546
|
+
# named parameters aren't included
|
547
|
+
#
|
500
548
|
# @example
|
501
549
|
# MoxiworksPlatform::Contact.update(
|
502
550
|
# moxi_works_agent_id: '123abc',
|
@@ -514,9 +562,11 @@ module MoxiworksPlatform
|
|
514
562
|
# primary_phone_number: '123213',
|
515
563
|
# property_mls_id: '1232312abcv',
|
516
564
|
# secondary_phone_number: '1234567890')
|
565
|
+
#
|
566
|
+
#
|
517
567
|
def self.update(opts={})
|
518
|
-
opts[:contact_id] = opts[:partner_contact_id]
|
519
|
-
url = "#{MoxiworksPlatform::Config.url}/api/contacts/#{opts[:
|
568
|
+
opts[:contact_id] = opts[:partner_contact_id]
|
569
|
+
url = "#{MoxiworksPlatform::Config.url}/api/contacts/#{opts[:partner_contact_id]}"
|
520
570
|
self.send_request(:put, opts, url)
|
521
571
|
end
|
522
572
|
|
@@ -530,6 +580,9 @@ module MoxiworksPlatform
|
|
530
580
|
#
|
531
581
|
# @return [Boolean] -- success of the delete action
|
532
582
|
#
|
583
|
+
# @raise ::MoxiworksPlatform::Exception::ArgumentError if required
|
584
|
+
# named parameters aren't included
|
585
|
+
#
|
533
586
|
# @example
|
534
587
|
# success = MoxiWorksPlatform::Contact.delete(moxi_works_agent_id: '123abcd', partner_contact_id: 'myUniqueContactId' )
|
535
588
|
#
|
@@ -558,7 +611,6 @@ module MoxiworksPlatform
|
|
558
611
|
#
|
559
612
|
# optional Contact parameters
|
560
613
|
#
|
561
|
-
# @option opts [String] :moxi_works_contact_id Moxi Works Platform contact ID
|
562
614
|
# @option opts [String] :business_website full url of a website associated with this contact
|
563
615
|
# @option opts [String] :contact_name full name of this contact in format "Firstname Middlename Lastname"
|
564
616
|
# @option opts [String, Enumerated] :gender can be "male" or "female" or "m" or "f"
|
@@ -612,15 +664,15 @@ module MoxiworksPlatform
|
|
612
664
|
#
|
613
665
|
# @param [String] url The full URLto connect to
|
614
666
|
# @return [MoxiworksPlatform::Contact]
|
667
|
+
#
|
615
668
|
def self.send_request(method, opts={}, url=nil)
|
616
669
|
url ||= "#{MoxiworksPlatform::Config.url}/api/contacts"
|
617
|
-
|
618
|
-
required_opts = [:moxi_works_agent_id, :contact_id]
|
670
|
+
required_opts = [:moxi_works_agent_id, :partner_contact_id]
|
619
671
|
required_opts.each do |opt|
|
620
|
-
|
621
|
-
raise ::MoxiworksPlatform::Exception::ArgumentError, message if
|
672
|
+
raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
|
622
673
|
opts[opt].nil? or opts[opt].empty?
|
623
674
|
end
|
675
|
+
opts[:contact_id] = opts[:partner_contact_id]
|
624
676
|
contact = nil
|
625
677
|
RestClient::Request.execute(method: method,
|
626
678
|
url: url,
|
@@ -646,7 +698,7 @@ module MoxiworksPlatform
|
|
646
698
|
# contact.primary_email_address = 'j.jonah.jameson@househun.ter'
|
647
699
|
# contact.save
|
648
700
|
def save
|
649
|
-
MoxiworksPlatform::Contact.
|
701
|
+
MoxiworksPlatform::Contact.update(self.to_hash)
|
650
702
|
end
|
651
703
|
|
652
704
|
# Delete an instance of MoxiWorksPlatform::Contact from Moxi Works Platform
|
@@ -656,6 +708,7 @@ module MoxiworksPlatform
|
|
656
708
|
# @example
|
657
709
|
# contact = MoxiWorksPlatform::Contact.find(moxi_works_agent_id: '123abcd', partner_contact_id: 'myUniqueContactId' )
|
658
710
|
# success = contact.delete
|
711
|
+
#
|
659
712
|
def delete
|
660
713
|
MoxiworksPlatform::Contact.delete(self.to_hash)
|
661
714
|
end
|
@@ -63,6 +63,7 @@ module MoxiworksPlatform
|
|
63
63
|
def self.check_for_error_in_response(response)
|
64
64
|
begin
|
65
65
|
json = JSON.parse(response)
|
66
|
+
return if json.is_a?(Array)
|
66
67
|
rescue => e
|
67
68
|
raise MoxiworksPlatform::Exception::RemoteRequestFailure, "unable to parse remote response #{e}\n response:\n #{response}"
|
68
69
|
end
|
data/moxiworks_platform.gemspec
CHANGED
@@ -9,8 +9,9 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Tres Wong-Godfrey"]
|
10
10
|
spec.email = ["tres.wong-godfrey@moxiworks.com"]
|
11
11
|
|
12
|
+
spec.description = %q{Moxi Works Platform Client Library For Ruby. Partners can use the Moxi Works Platform Library to quickly integrate into the Moxi Works Platform}
|
12
13
|
spec.summary = %q{Ruby Moxi Works Platform Client}
|
13
|
-
spec.homepage = 'https://github.
|
14
|
+
spec.homepage = 'https://github.com/moxiworks-platform/moxiworks-ruby'
|
14
15
|
|
15
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
16
17
|
spec.bindir = "exe"
|
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.1.
|
4
|
+
version: 0.1.1
|
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-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,7 +66,8 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
description:
|
69
|
+
description: Moxi Works Platform Client Library For Ruby. Partners can use the Moxi
|
70
|
+
Works Platform Library to quickly integrate into the Moxi Works Platform
|
70
71
|
email:
|
71
72
|
- tres.wong-godfrey@moxiworks.com
|
72
73
|
executables: []
|
@@ -89,7 +90,7 @@ files:
|
|
89
90
|
- lib/moxiworks_platform/resource.rb
|
90
91
|
- lib/moxiworks_platform/version.rb
|
91
92
|
- moxiworks_platform.gemspec
|
92
|
-
homepage: https://github.
|
93
|
+
homepage: https://github.com/moxiworks-platform/moxiworks-ruby
|
93
94
|
licenses: []
|
94
95
|
metadata: {}
|
95
96
|
post_install_message:
|