easy_broker 0.1.3 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c20a49902c6e3b0376a60c587184c300ec13fb31e857433332f1d843f13a7a2f
4
- data.tar.gz: ebf8a2a4a334fd52e4872e053f7d69d3bfae63c68c82e7ede84bba597ba8e2c1
3
+ metadata.gz: c27aa2e5baf6abfffe4c533f261a80b108fea52d902c3e0f45e848e77feb0b83
4
+ data.tar.gz: 1ac5b3ffa82f4a41b680fccf21d7d57ab6f037188a599f019b942f87606bc0a8
5
5
  SHA512:
6
- metadata.gz: 6de4105cd8d793b7272bc8e6e41de7877e3fc1a96ae4fb63d20f19f58885c027596d3aeaae863f6f93cf9eb53c65475c93b777519540559deae2b4c0b2ec05f6
7
- data.tar.gz: 60557d7796a982543fb700f4dd9adacc3f88771957228b9b1b762f80daedccb351b8c643e076ea5cd7aa18c958dcb61d822f9b9b26023b39ece8a4e19d2e3de9
6
+ metadata.gz: 94fe5373b0759fdd9e40f1ce23bfb4459f9b853c2c68422b34443c070cb90e8eb9abdf47eb3eb6a6778d7a29d477192f03f6da8c513c34ab6771980f8a7623d1
7
+ data.tar.gz: 946b6486bf68adf1f0d28b7f585f92b559de4f311fe47dd5ff48d687f64c3a3603451097cdb72c9f1797c92d7a1ce758fc5587c287600d0bedf1f7bd46949171
data/.gitignore CHANGED
@@ -9,4 +9,5 @@
9
9
  Gemfile.lock
10
10
  /vendor
11
11
  .DS_Store
12
- *.gem
12
+ *.gem
13
+ .idea
data/CHANGELOG.md CHANGED
@@ -8,3 +8,13 @@
8
8
 
9
9
  ## 0.1.3
10
10
  * Fixed pagination bug where the last page may not have been included.
11
+
12
+ ## 0.1.4
13
+ * Added support for the listing_statuses endpoint.
14
+
15
+ ## 0.1.5
16
+ * Added support for the listing_statuses endpoint for integration partners.
17
+
18
+ ## 1.0.0
19
+ * **Breaking change**: `limit`, `page`, and `search` params should be at the root level requests instead of in the `query` hash.
20
+ * Updated endpoints to use the `api` subdomain; `api.easybroker.com/v1` instead of `www.easybroker.com/api/v1`.
data/README.md CHANGED
@@ -61,7 +61,7 @@ results.next_page
61
61
 
62
62
 
63
63
  # Search for only published properties
64
- client.properties.search(search: { statuses: [:published] } )
64
+ client.properties.search(search: { statuses: [:published] }, limit: 1, page: 1)
65
65
  ```
66
66
 
67
67
  You can also pass a logger to log any methods that make remote calls. The logger class must implement a `log` method which will be called with the [HTTParty response](https://www.rubydoc.info/github/jnunemaker/httparty/HTTParty/Response) for every remote request sent.
@@ -78,6 +78,8 @@ client.locations # List and search geographic locations
78
78
  client.contact_requests # List and search contact requests in your account - TDB create via post
79
79
  client.properties # List, search and find properties in your account
80
80
  client.mls_properties # List, search and find properties in the MLS - requires MLS API Plan
81
+ client.listing_statuses # List and search the listing status for properties. Great for syncing large sets of properties. - includes MLS properties if you have the MLS Plan
82
+ client.integration_partners.listing_statuses # List and search the listing status for partner properties. Requires an integration partner api key.
81
83
  ```
82
84
 
83
85
  ## Development
@@ -34,9 +34,7 @@ class EasyBroker::ApiClient
34
34
  private
35
35
 
36
36
  def send_request(verb, path = '', params = {})
37
- query = params[:query] || params['query'] || {}
38
-
39
- self.class.send(verb, path, params.merge(query)).tap do |response|
37
+ self.class.send(verb, path, params).tap do |response|
40
38
  check_errors(response)
41
39
  logger&.log response
42
40
  end
@@ -5,7 +5,7 @@ module EasyBroker
5
5
  'Accept' => 'application/json',
6
6
  'User-Agent' => USER_AGENT
7
7
  }
8
- DEFAULT_API_ROOT_URL = 'https://www.easybroker.com/api/v1'
9
- STAGING_API_ROOT_URL = 'https://www.stagingeb.com/api/v1'
8
+ DEFAULT_API_ROOT_URL = 'https://api.easybroker.com/v1'
9
+ STAGING_API_ROOT_URL = 'https://api.stagingeb.com/v1'
10
10
  AUTHORIZATION_HEADER = 'X-Authorization'
11
11
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EasyBroker
4
+ module IntegrationPartners
5
+ class ListingStatuses
6
+ ENDPOINT = '/integration_partners/listing_statuses'
7
+
8
+ attr_reader :api_client
9
+
10
+ def initialize(api_client)
11
+ @api_client = api_client
12
+ end
13
+
14
+ def search(query = {})
15
+ stored_query = EasyBroker::Query.new(api_client, ENDPOINT, query)
16
+ EasyBroker::PaginatedResponse.new(stored_query)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EasyBroker
4
+ module IntegrationPartners
5
+ class PublicClient
6
+ attr_reader :api_client
7
+
8
+ def initialize(api_client)
9
+ @api_client = api_client
10
+ end
11
+
12
+ def listing_statuses
13
+ EasyBroker::IntegrationPartners::ListingStatuses.new(api_client)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ class EasyBroker::ListingStatuses
4
+ ENDPOINT = '/listing_statuses'
5
+
6
+ attr_reader :api_client
7
+
8
+ def initialize(api_client)
9
+ @api_client = api_client
10
+ end
11
+
12
+ def search(query = {})
13
+ stored_query = EasyBroker::Query.new(api_client, ENDPOINT, query)
14
+ EasyBroker::PaginatedResponse.new(stored_query)
15
+ end
16
+ end
@@ -22,4 +22,12 @@ class EasyBroker::PublicClient
22
22
  def locations
23
23
  EasyBroker::Locations.new(api_client)
24
24
  end
25
+
26
+ def listing_statuses
27
+ EasyBroker::ListingStatuses.new(api_client)
28
+ end
29
+
30
+ def integration_partners
31
+ EasyBroker::IntegrationPartners::PublicClient.new(api_client)
32
+ end
25
33
  end
@@ -9,8 +9,8 @@ class EasyBroker::Query
9
9
  @query_params = query_params
10
10
  end
11
11
 
12
- def get(page = 1)
13
- query_params[:page] = page
12
+ def get(page = nil)
13
+ query_params[:page] = page if page
14
14
  response = api_client.get(endpoint, query: query_params)
15
15
  JSON.parse(response.body, object_class: OpenStruct)
16
16
  end
@@ -1,3 +1,3 @@
1
1
  module EasyBroker
2
- VERSION = "0.1.3"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/easy_broker.rb CHANGED
@@ -12,6 +12,9 @@ require 'easy_broker/properties'
12
12
  require 'easy_broker/mls_properties'
13
13
  require 'easy_broker/contact_requests'
14
14
  require 'easy_broker/locations'
15
+ require 'easy_broker/listing_statuses'
16
+ require 'easy_broker/integration_partners/public_client'
17
+ require 'easy_broker/integration_partners/listing_statuses'
15
18
 
16
19
  module EasyBroker
17
20
  def self.configuration
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Northam
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-16 00:00:00.000000000 Z
11
+ date: 2022-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -130,6 +130,9 @@ files:
130
130
  - lib/easy_broker/constants.rb
131
131
  - lib/easy_broker/contact_requests.rb
132
132
  - lib/easy_broker/errors.rb
133
+ - lib/easy_broker/integration_partners/listing_statuses.rb
134
+ - lib/easy_broker/integration_partners/public_client.rb
135
+ - lib/easy_broker/listing_statuses.rb
133
136
  - lib/easy_broker/locations.rb
134
137
  - lib/easy_broker/mls_properties.rb
135
138
  - lib/easy_broker/paginated_response.rb
@@ -157,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
160
  - !ruby/object:Gem::Version
158
161
  version: '0'
159
162
  requirements: []
160
- rubygems_version: 3.1.6
163
+ rubygems_version: 3.0.3.1
161
164
  signing_key:
162
165
  specification_version: 4
163
166
  summary: A gem to work with EasyBroker's API