justimmo_client 0.4.6 → 0.5.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/.gitlab-ci.yml +79 -28
- data/lib/justimmo_client/{employee.rb → api/v1/interfaces/employee_interface.rb} +5 -8
- data/lib/justimmo_client/{realty.rb → api/v1/interfaces/realty_interface.rb} +12 -14
- data/lib/justimmo_client/api/v1/requests/realty_request.rb +2 -2
- data/lib/justimmo_client/api/v1.rb +1 -0
- data/lib/justimmo_client/autoload.rb +0 -2
- data/lib/justimmo_client/core/utils.rb +4 -0
- data/lib/justimmo_client/interface.rb +98 -0
- data/lib/justimmo_client/version.rb +1 -1
- data/lib/justimmo_client.rb +1 -0
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b165d1e85b2806d6a48d4549205b005bdb24ae3d
|
4
|
+
data.tar.gz: 9095e7b611ba1ba1d3cc9b2fc9d9fe5bde5dd66f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81adda6c7d8369c9f7b8750e9436b23311a7b9c2358ec464cdced91bd83fbbfd1beac8fde7857ad905aa9d981867361ab1abcb2f66e4c71e77b17c2807c9ec7c
|
7
|
+
data.tar.gz: e09286bf5cc8089d57153396677bbe8fc561fb135a2ac6552c35f7cab68554d92ea6ac567ad78d34e177f3eb06c504252a2319b9995ccfe86fa23a6b000c20be
|
data/.gitlab-ci.yml
CHANGED
@@ -1,46 +1,99 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
image: "ruby:2.4"
|
2
|
+
|
3
|
+
stages:
|
4
|
+
- prepare
|
5
|
+
- test
|
6
|
+
- deploy
|
7
|
+
|
8
|
+
# Templates
|
9
|
+
|
10
|
+
.ruby_2_4_cache: &ruby_2_4_cache
|
3
11
|
cache:
|
12
|
+
key: "$CI_COMMIT_REF_NAME-ruby_2_4"
|
4
13
|
paths:
|
5
|
-
-
|
6
|
-
|
7
|
-
|
14
|
+
- vendor/bundle
|
15
|
+
|
16
|
+
.ruby_2_3_cache: &ruby_2_3_cache
|
17
|
+
cache:
|
18
|
+
key: "$CI_COMMIT_REF_NAME-ruby_2_3"
|
19
|
+
paths:
|
20
|
+
- vendor/bundle
|
21
|
+
|
22
|
+
.pull_cache: &pull_cache
|
23
|
+
cache:
|
24
|
+
policy: pull
|
25
|
+
|
26
|
+
.push_cache: &push_cache
|
27
|
+
cache:
|
28
|
+
policy: push
|
29
|
+
|
30
|
+
.ruby_2_3: &ruby_2_3
|
31
|
+
image: "ruby:2.3"
|
32
|
+
<<: *ruby_2_3_cache
|
33
|
+
|
34
|
+
.ruby_2_4: &ruby_2_4
|
35
|
+
image: "ruby:2.4"
|
36
|
+
<<: *ruby_2_4_cache
|
37
|
+
|
38
|
+
.test_job: &test_job
|
39
|
+
<<: *pull_cache
|
40
|
+
variables:
|
41
|
+
BUNDLE_PATH: "vendor/bundle"
|
42
|
+
stage: test
|
43
|
+
environment: testing
|
44
|
+
|
45
|
+
.prepare_job: &prepare_job
|
46
|
+
<<: *push_cache
|
47
|
+
variables:
|
48
|
+
BUNDLE_PATH: "vendor/bundle"
|
49
|
+
stage: prepare
|
50
|
+
script:
|
51
|
+
- bundle install -j $(nproc)
|
8
52
|
tags:
|
9
53
|
- ruby
|
10
54
|
|
11
|
-
|
12
|
-
image: 'ruby:2.3'
|
13
|
-
<<: *test_job
|
55
|
+
# Jobs: Prepare
|
14
56
|
|
15
|
-
|
16
|
-
|
17
|
-
<<: *
|
57
|
+
prepare:bundler_2_4:
|
58
|
+
<<: *prepare_job
|
59
|
+
<<: *ruby_2_4
|
18
60
|
|
19
|
-
|
20
|
-
<<: *
|
21
|
-
|
22
|
-
|
23
|
-
|
61
|
+
prepare:bundler_2_3:
|
62
|
+
<<: *prepare_job
|
63
|
+
<<: *ruby_2_3
|
64
|
+
|
65
|
+
# Jobs: Test
|
24
66
|
|
25
|
-
test:
|
26
|
-
<<: *
|
27
|
-
|
67
|
+
test:rubocop:
|
68
|
+
<<: *test_job
|
69
|
+
<<: *ruby_2_4
|
70
|
+
script:
|
71
|
+
- bundle exec rubocop
|
28
72
|
only:
|
29
73
|
- dev
|
74
|
+
tags:
|
75
|
+
- ruby
|
30
76
|
|
31
77
|
test:rspec_2_3:
|
32
|
-
<<: *
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
78
|
+
<<: *test_job
|
79
|
+
<<: *ruby_2_3
|
80
|
+
script:
|
81
|
+
- bundle exec rspec
|
82
|
+
tags:
|
83
|
+
- ruby
|
37
84
|
|
38
85
|
test:rspec_2_4:
|
39
|
-
<<: *
|
40
|
-
|
86
|
+
<<: *test_job
|
87
|
+
<<: *ruby_2_4
|
88
|
+
script:
|
89
|
+
- bundle exec rspec
|
41
90
|
artifacts:
|
42
91
|
paths:
|
43
92
|
- coverage/
|
93
|
+
tags:
|
94
|
+
- ruby
|
95
|
+
|
96
|
+
# Jobs: deploy
|
44
97
|
|
45
98
|
pages:
|
46
99
|
stage: deploy
|
@@ -57,8 +110,6 @@ pages:
|
|
57
110
|
|
58
111
|
deploy:rubygems:
|
59
112
|
stage: deploy
|
60
|
-
dependencies:
|
61
|
-
- test:rspec_2_4
|
62
113
|
before_script:
|
63
114
|
- gem install dpl
|
64
115
|
script:
|
@@ -1,14 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module JustimmoClient
|
3
|
+
module JustimmoClient::V1
|
4
4
|
# Public employee query interface
|
5
|
-
module
|
5
|
+
module EmployeeInterface
|
6
6
|
extend JustimmoClient::Utils
|
7
7
|
|
8
8
|
module_function
|
9
9
|
|
10
|
-
#
|
11
|
-
# @return [Array<Object>]
|
10
|
+
# @return [Array<Employee>]
|
12
11
|
def list
|
13
12
|
xml_response = request(:employee).list
|
14
13
|
model = Struct.new(:employees).new
|
@@ -17,9 +16,7 @@ module JustimmoClient
|
|
17
16
|
[]
|
18
17
|
end
|
19
18
|
|
20
|
-
#
|
21
|
-
# @param id [Integer] The ID of the employee
|
22
|
-
# @return [Object]
|
19
|
+
# @return [Employee]
|
23
20
|
def detail(id)
|
24
21
|
xml_response = request(:employee).detail(id)
|
25
22
|
model = model(:employee).new
|
@@ -28,7 +25,7 @@ module JustimmoClient
|
|
28
25
|
nil
|
29
26
|
end
|
30
27
|
|
31
|
-
# @return [Array<Integer>]
|
28
|
+
# @return [Array<Integer>]
|
32
29
|
def ids
|
33
30
|
json_response = request(:employee).ids
|
34
31
|
::JSON.parse(json_response).map(&:to_i)
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
require "json"
|
4
4
|
|
5
|
-
module JustimmoClient
|
5
|
+
module JustimmoClient::V1
|
6
6
|
# Public realty query interface
|
7
|
-
module
|
7
|
+
module RealtyInterface
|
8
8
|
extend JustimmoClient::Utils
|
9
9
|
|
10
10
|
module_function
|
@@ -53,9 +53,7 @@ module JustimmoClient
|
|
53
53
|
# @option options [DateTime] :updated_at_min
|
54
54
|
# @option options [DateTime] :updated_at_max
|
55
55
|
# @option options [String] :location
|
56
|
-
# @
|
57
|
-
# JustimmoClient::Realty.list(zip_code: 6800, limit: 3)
|
58
|
-
# @return [Array<Object>] An array of basic realty objects, or an empty array on error.
|
56
|
+
# @return [Array<Realty>] An array of basic realty objects, or an empty array on error.
|
59
57
|
def list(options = {})
|
60
58
|
xml_response = request(:realty).list(options)
|
61
59
|
model = Struct.new(:realties).new
|
@@ -66,7 +64,7 @@ module JustimmoClient
|
|
66
64
|
|
67
65
|
# @param [Integer] id
|
68
66
|
# @param [Symbol, String] lang
|
69
|
-
# @return [
|
67
|
+
# @return [Realty, nil] A detailed realty object, or nil if it could not be found.
|
70
68
|
def detail(id, lang: nil)
|
71
69
|
xml_response = request(:realty).detail(id, lang: lang)
|
72
70
|
model = Struct.new(:realty).new
|
@@ -76,12 +74,12 @@ module JustimmoClient
|
|
76
74
|
end
|
77
75
|
|
78
76
|
# @see list
|
79
|
-
# @return [Array<
|
77
|
+
# @return [Array<Realty>] An array of detailed realty objects, or an empty array on error.
|
80
78
|
def details(options = {})
|
81
79
|
ids(options).map { |id| detail(id) }
|
82
80
|
end
|
83
81
|
|
84
|
-
# @see list
|
82
|
+
# @option (see list)
|
85
83
|
# @return [Array<Integer>] An array of realty ids, empty array if no results.
|
86
84
|
def ids(options = {})
|
87
85
|
json_response = request(:realty).ids(options)
|
@@ -91,7 +89,7 @@ module JustimmoClient
|
|
91
89
|
end
|
92
90
|
|
93
91
|
# @option options [Boolean] :all (false)
|
94
|
-
# @return [Array<
|
92
|
+
# @return [Array<RealtyCategory>]
|
95
93
|
def categories(options = {})
|
96
94
|
xml_response = request(:realty).categories(options)
|
97
95
|
representer(:realty_category).for_collection.new([]).from_xml(xml_response)
|
@@ -100,7 +98,7 @@ module JustimmoClient
|
|
100
98
|
end
|
101
99
|
|
102
100
|
# @option options [Boolean] :all (false)
|
103
|
-
# @return [Array<
|
101
|
+
# @return [Array<RealtyType>]
|
104
102
|
def types(options = {})
|
105
103
|
xml_response = request(:realty).types(options)
|
106
104
|
representer(:realty_type).for_collection.new([]).from_xml(xml_response)
|
@@ -109,7 +107,7 @@ module JustimmoClient
|
|
109
107
|
end
|
110
108
|
|
111
109
|
# @option options [Boolean] :all (false)
|
112
|
-
# @return [Array<
|
110
|
+
# @return [Array<Country>]
|
113
111
|
def countries(options = {})
|
114
112
|
xml_response = request(:realty).countries(options)
|
115
113
|
representer(:country).for_collection.new([]).from_xml(xml_response)
|
@@ -119,7 +117,7 @@ module JustimmoClient
|
|
119
117
|
|
120
118
|
# @option options [Boolean] :all (false)
|
121
119
|
# @option options [Integer] :country (nil)
|
122
|
-
# @return [Array<
|
120
|
+
# @return [Array<FederalState>]
|
123
121
|
def federal_states(options = {})
|
124
122
|
xml_response = request(:realty).federal_states(options)
|
125
123
|
representer(:federal_state).for_collection.new([]).from_xml(xml_response)
|
@@ -130,7 +128,7 @@ module JustimmoClient
|
|
130
128
|
# @option options [Boolean] :all (false)
|
131
129
|
# @option options [Integer] :country (nil)
|
132
130
|
# @option options [Integer] :federal_state (nil)
|
133
|
-
# @return [Array<
|
131
|
+
# @return [Array<Region>]
|
134
132
|
def regions(options = {})
|
135
133
|
xml_response = request(:realty).regions(options)
|
136
134
|
representer(:region).for_collection.new([]).from_xml(xml_response)
|
@@ -141,7 +139,7 @@ module JustimmoClient
|
|
141
139
|
# @option options [Boolean] :all (false)
|
142
140
|
# @option options [Integer] :country (nil)
|
143
141
|
# @option options [Integer] :federal_state (nil)
|
144
|
-
# @return [Array<
|
142
|
+
# @return [Array<City>]
|
145
143
|
def zip_codes_and_cities(options = {})
|
146
144
|
xml_response = request(:realty).zip_codes_and_cities(options)
|
147
145
|
representer(:city).for_collection.new([]).from_xml(xml_response)
|
@@ -176,7 +176,7 @@ module JustimmoClient::V1
|
|
176
176
|
f.add :type do |key, *values|
|
177
177
|
values = [values].flatten.map(&:to_sym)
|
178
178
|
log.debug(values)
|
179
|
-
types =
|
179
|
+
types = RealtyInterface.types
|
180
180
|
[:type_id, types.select { |x| values.include?(x.name) }.map(&:id)]
|
181
181
|
end
|
182
182
|
f.add :sub_type_id
|
@@ -209,7 +209,7 @@ module JustimmoClient::V1
|
|
209
209
|
f.add :updated_at_min, as: :aktualisiert_am_von
|
210
210
|
f.add :updated_at_max, as: :aktualisiert_am_bis
|
211
211
|
f.add :location do |key, value|
|
212
|
-
cities =
|
212
|
+
cities = RealtyInterface.zip_codes_and_cities
|
213
213
|
[:zip_code, cities.select { |x| x.location == value }.first&.zip_code]
|
214
214
|
end
|
215
215
|
end
|
@@ -11,7 +11,5 @@ module JustimmoClient
|
|
11
11
|
autoload :Logging, "justimmo_client/core/logging"
|
12
12
|
autoload :Utils, "justimmo_client/core/utils"
|
13
13
|
autoload :Caching, "justimmo_client/core/caching"
|
14
|
-
autoload :Realty, "justimmo_client/realty"
|
15
|
-
autoload :Employee, "justimmo_client/employee"
|
16
14
|
autoload :OptionParser, "justimmo_client/option_parser"
|
17
15
|
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
module JustimmoClient
|
2
|
+
extend JustimmoClient::Utils
|
3
|
+
|
4
|
+
module_function
|
5
|
+
|
6
|
+
# @!group Realty
|
7
|
+
|
8
|
+
# Get a list of realty objects with limited information.
|
9
|
+
# @see V1::RealtyInterface.list query parameters (API Version 1)
|
10
|
+
# @option (see V1::RealtyInterface.list)
|
11
|
+
# @example Filter by zip code and limit to three results.
|
12
|
+
# JustimmoClient.realties(zip_code: 6800, limit: 3)
|
13
|
+
# @return (see V1::RealtyInterface.list)
|
14
|
+
def realties(**options)
|
15
|
+
interface(:realty).list(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Get detailed information about a single realty.
|
19
|
+
# @see V1::RealtyInterface.detail query parameters (API Version 1)
|
20
|
+
# @param (see V1::RealtyInterface.detail)
|
21
|
+
# @return (see V1::RealtyInterface.detail)
|
22
|
+
def realty(id, lang: nil)
|
23
|
+
interface(:realty).detail(id, lang: lang)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Get a list of all realty ids.
|
27
|
+
# @see V1::RealtyInterface.ids query parameters (API Version 1)
|
28
|
+
# @option (see V1::RealtyInterface.ids)
|
29
|
+
# @return (see V1::RealtyInterface.ids)
|
30
|
+
def realty_ids(options = {})
|
31
|
+
interface(:realty).ids(options)
|
32
|
+
end
|
33
|
+
|
34
|
+
# @!group Employee
|
35
|
+
|
36
|
+
# Retrieve a list of employee data.
|
37
|
+
# @return (see V1::EmployeeInterface.list)
|
38
|
+
def employees
|
39
|
+
interface(:employee).list
|
40
|
+
end
|
41
|
+
|
42
|
+
# Retrieve detailed information about a single employee.
|
43
|
+
# @param (see V1::EmployeeInterface.detail)
|
44
|
+
# @return (see V1::EmployeeInterface.detail)
|
45
|
+
def employee(id)
|
46
|
+
interface(:employee).detail(id)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Get a list of all employee IDs.
|
50
|
+
# @return (see V1::EmployeeInterface.ids)
|
51
|
+
def employee_ids
|
52
|
+
interface(:employee).ids
|
53
|
+
end
|
54
|
+
|
55
|
+
# @!group Basic Data
|
56
|
+
|
57
|
+
# Get a list of available categories.
|
58
|
+
# @see V1::RealtyInterface.categories query parameters (API Version 1)
|
59
|
+
# @return (see V1::RealtyInterface.categories)
|
60
|
+
def realty_categories(**options)
|
61
|
+
interface(:realty).categories(options)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Get a list of available realty types.
|
65
|
+
# @see V1::RealtyInterface.types query parameters (API Version 1)
|
66
|
+
# @return (see V1::RealtyInterface.types)
|
67
|
+
def realty_types(**options)
|
68
|
+
interface(:realty).types(options)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Get a list of countries.
|
72
|
+
# @see V1::RealtyInterface.countries query parameters (API Version 1)
|
73
|
+
# @return (see V1::RealtyInterface.countries)
|
74
|
+
def countries(**options)
|
75
|
+
interface(:realty).countries(options)
|
76
|
+
end
|
77
|
+
|
78
|
+
# Get a list of federal states.
|
79
|
+
# @see V1::RealtyInterface.federal_states query parameters (API Version 1)
|
80
|
+
# @return (see V1::RealtyInterface.federal_states)
|
81
|
+
def federal_states(**options)
|
82
|
+
interface(:realty).federal_states(options)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Get a list of regions.
|
86
|
+
# @see V1::RealtyInterface.regions query parameters (API Version 1)
|
87
|
+
# @return (see V1::RealtyInterface.regions)
|
88
|
+
def regions(**options)
|
89
|
+
interface(:realty).regions(options)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Get a list of cities and their zip codes.
|
93
|
+
# @see V1::RealtyInterface.zip_codes_and_cities query parameters (API Version 1)
|
94
|
+
# @return (see V1::RealtyInterface.zip_codes_and_cities)
|
95
|
+
def cities(**options)
|
96
|
+
interface(:realty).zip_codes_and_cities(options)
|
97
|
+
end
|
98
|
+
end
|
data/lib/justimmo_client.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: justimmo_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrick Auernig
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -185,6 +185,8 @@ files:
|
|
185
185
|
- justimmo_client.gemspec
|
186
186
|
- lib/justimmo_client.rb
|
187
187
|
- lib/justimmo_client/api/v1.rb
|
188
|
+
- lib/justimmo_client/api/v1/interfaces/employee_interface.rb
|
189
|
+
- lib/justimmo_client/api/v1/interfaces/realty_interface.rb
|
188
190
|
- lib/justimmo_client/api/v1/models/city.rb
|
189
191
|
- lib/justimmo_client/api/v1/models/country.rb
|
190
192
|
- lib/justimmo_client/api/v1/models/employee.rb
|
@@ -236,11 +238,10 @@ files:
|
|
236
238
|
- lib/justimmo_client/core/config.rb
|
237
239
|
- lib/justimmo_client/core/logging.rb
|
238
240
|
- lib/justimmo_client/core/utils.rb
|
239
|
-
- lib/justimmo_client/employee.rb
|
240
241
|
- lib/justimmo_client/errors.rb
|
242
|
+
- lib/justimmo_client/interface.rb
|
241
243
|
- lib/justimmo_client/misc.rb
|
242
244
|
- lib/justimmo_client/option_parser.rb
|
243
|
-
- lib/justimmo_client/realty.rb
|
244
245
|
- lib/justimmo_client/version.rb
|
245
246
|
- notes.md
|
246
247
|
homepage: https://gitlab.com/exacting/justimmo-client-ruby
|
@@ -263,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
263
264
|
version: '0'
|
264
265
|
requirements: []
|
265
266
|
rubyforge_project:
|
266
|
-
rubygems_version: 2.6.
|
267
|
+
rubygems_version: 2.6.14
|
267
268
|
signing_key:
|
268
269
|
specification_version: 4
|
269
270
|
summary: API client for Justimmo
|