justimmo_client 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/justimmo_client/api/v1/models/employee.rb +4 -0
- data/lib/justimmo_client/api/v1/models/geo_location.rb +1 -1
- data/lib/justimmo_client/api/v1/models/realty.rb +1 -0
- data/lib/justimmo_client/api/v1/models/realty_price.rb +8 -1
- data/lib/justimmo_client/api/v1/models/realty_type.rb +1 -1
- data/lib/justimmo_client/api/v1/models/realty_usage.rb +18 -0
- data/lib/justimmo_client/api/v1/representers/xml/realty_detail_representer.rb +4 -0
- data/lib/justimmo_client/api/v1/representers/xml/realty_type_representer.rb +18 -1
- data/lib/justimmo_client/api/v1/requests/realty_request.rb +12 -5
- data/lib/justimmo_client/option_parser.rb +7 -3
- data/lib/justimmo_client/realty.rb +2 -1
- data/lib/justimmo_client/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 862c14b5638385085dd28a49b7516615bad161cb
|
4
|
+
data.tar.gz: f9a71e5c7282b4e935faa15afc6f4756d7842d1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87d97beb7c5aff8c95bdb2e85c4726e7586e22c85665cdd9dcd9d18dd2e6a701af4180d261b88a6e180d13de80be2bb04517bdcefe7cdf57227915b708bd8f1f
|
7
|
+
data.tar.gz: d443e4e059747c07a2266ea72087fa2691d2e6c3b854e158f82c3441a664ae240fade67435444019b013a9776ed7e6018bd03d8cf2cb7c919b6fe633d683b0b9
|
@@ -10,7 +10,7 @@ module JustimmoClient::V1
|
|
10
10
|
# @return [$2]
|
11
11
|
attribute :proximity, String
|
12
12
|
attribute :federal_state, String
|
13
|
-
attribute :country,
|
13
|
+
attribute :country, IsoCountryCodes::Code
|
14
14
|
attribute :zip_code, Integer
|
15
15
|
attribute :latitude, Float
|
16
16
|
attribute :longitude, Float
|
@@ -68,6 +68,8 @@ module JustimmoClient::V1
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def commission
|
71
|
+
return nil unless @commission
|
72
|
+
|
71
73
|
if purcase?
|
72
74
|
(get / 100 * @commission) * 1.20
|
73
75
|
else
|
@@ -76,6 +78,7 @@ module JustimmoClient::V1
|
|
76
78
|
end
|
77
79
|
|
78
80
|
def rent_vat
|
81
|
+
return nil unless rent? && rent_net
|
79
82
|
rent_net / 100 * @rent_vat
|
80
83
|
end
|
81
84
|
|
@@ -83,8 +86,12 @@ module JustimmoClient::V1
|
|
83
86
|
@purcase || @rent
|
84
87
|
end
|
85
88
|
|
89
|
+
def to_f
|
90
|
+
get.to_f
|
91
|
+
end
|
92
|
+
|
86
93
|
def to_s
|
87
|
-
on_demand? ? "on demand" :
|
94
|
+
on_demand? ? "on demand" : get.format
|
88
95
|
end
|
89
96
|
|
90
97
|
def inspect
|
@@ -20,5 +20,23 @@ module JustimmoClient::V1
|
|
20
20
|
attribute :living, Boolean
|
21
21
|
attribute :business, Boolean
|
22
22
|
attribute :investment, Boolean
|
23
|
+
|
24
|
+
# @!group Instance Method Summary
|
25
|
+
|
26
|
+
def to_a
|
27
|
+
tmp = []
|
28
|
+
tmp << :living if living?
|
29
|
+
tmp << :business if business?
|
30
|
+
tmp << :investment if investment?
|
31
|
+
tmp
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_s
|
35
|
+
to_a.join(", ")
|
36
|
+
end
|
37
|
+
|
38
|
+
def map(&block)
|
39
|
+
to_a.map(&block)
|
40
|
+
end
|
23
41
|
end
|
24
42
|
end
|
@@ -20,6 +20,10 @@ module JustimmoClient::V1
|
|
20
20
|
parse_filter: ->(_fragment, options) { options[:doc].css("user_defined_simplefield[feldname=aktualisiert_am]").text }
|
21
21
|
end
|
22
22
|
|
23
|
+
nested :zustand_angaben do
|
24
|
+
property :construction_year, as: :baujahr
|
25
|
+
end
|
26
|
+
|
23
27
|
property :geo,
|
24
28
|
decorator: GeoLocationRepresenter,
|
25
29
|
class: GeoLocation
|
@@ -5,8 +5,25 @@ module JustimmoClient::V1
|
|
5
5
|
class RealtyTypeRepresenter < JustimmoRepresenter
|
6
6
|
self.representation_wrap = :objektart
|
7
7
|
|
8
|
+
TRANSLATION_MAPPING = {
|
9
|
+
"Zimmer" => :room,
|
10
|
+
"Wohnung" => :apartment,
|
11
|
+
"Haus" => :house,
|
12
|
+
"Grundstück" => :property,
|
13
|
+
"Büro / Praxis" => :office,
|
14
|
+
"Einzelhandel" => :retail,
|
15
|
+
"Gastgewerbe" => :hospitality,
|
16
|
+
"Industrie / Gewerbe" => :business,
|
17
|
+
"Land und Forstwirtschaft" => :agriculture,
|
18
|
+
"Sonstige / Sonderobjekte" => :other,
|
19
|
+
"Freizeitimmobilie gewerblich" => :recreational_property_business,
|
20
|
+
"Zinshaus / Renditeobjekt" => :yield,
|
21
|
+
"Parken" => :parking
|
22
|
+
}.freeze
|
23
|
+
|
8
24
|
property :id
|
9
|
-
property :name
|
25
|
+
property :name,
|
26
|
+
parse_filter: ->(fragment, **) { TRANSLATION_MAPPING[fragment] }
|
10
27
|
|
11
28
|
collection_representer class: RealtyType
|
12
29
|
end
|
@@ -15,8 +15,6 @@ module JustimmoClient::V1
|
|
15
15
|
price: :preis,
|
16
16
|
zip_code: :plz,
|
17
17
|
price_per_sqm: :preis_per_m2,
|
18
|
-
type: :objektart,
|
19
|
-
subtype: :subobjektart,
|
20
18
|
tag: :tagname,
|
21
19
|
rooms: :zimmer,
|
22
20
|
area: :flaeche,
|
@@ -38,7 +36,10 @@ module JustimmoClient::V1
|
|
38
36
|
location: :ort,
|
39
37
|
all: :alle,
|
40
38
|
rent: :miete,
|
41
|
-
purcase: :kauf
|
39
|
+
purcase: :kauf,
|
40
|
+
type: :objektart,
|
41
|
+
sub_type: :subobjektart,
|
42
|
+
system_type: :realty_type
|
42
43
|
}.freeze
|
43
44
|
|
44
45
|
module_function
|
@@ -172,7 +173,13 @@ module JustimmoClient::V1
|
|
172
173
|
f.add :price_per_sqm_min
|
173
174
|
f.add :price_per_sqm_max
|
174
175
|
f.add :type_id
|
175
|
-
f.add :
|
176
|
+
f.add :type do |key, *values|
|
177
|
+
values = [values].flatten.map(&:to_sym)
|
178
|
+
log.debug(values)
|
179
|
+
types = JustimmoClient::Realty.types
|
180
|
+
[:type_id, types.select { |x| values.include?(x.name) }.map(&:id)]
|
181
|
+
end
|
182
|
+
f.add :sub_type_id
|
176
183
|
f.add :tag
|
177
184
|
f.add :zip_code
|
178
185
|
f.add :zip_code_min
|
@@ -195,7 +202,7 @@ module JustimmoClient::V1
|
|
195
202
|
f.add :federal_state_id
|
196
203
|
f.add :status_id
|
197
204
|
f.add :project_id
|
198
|
-
f.add :
|
205
|
+
f.add :system_type
|
199
206
|
f.add :parent_id
|
200
207
|
f.add :rent, type: :bool
|
201
208
|
f.add :purcase, type: :bool
|
@@ -100,7 +100,7 @@ module JustimmoClient
|
|
100
100
|
|
101
101
|
coerced =
|
102
102
|
case @options.dig(key, :type)
|
103
|
-
when :bool then
|
103
|
+
when :bool then bool_to_i(value)
|
104
104
|
else mapping(value)
|
105
105
|
end
|
106
106
|
|
@@ -113,8 +113,12 @@ module JustimmoClient
|
|
113
113
|
{ "#{api_param}#{min}": range.first, "#{api_param}#{max}": range.last }
|
114
114
|
end
|
115
115
|
|
116
|
-
def
|
117
|
-
value
|
116
|
+
def bool_to_i(value)
|
117
|
+
case value
|
118
|
+
when "true" then 1
|
119
|
+
when "false" then 0
|
120
|
+
else value ? 1 : 0
|
121
|
+
end
|
118
122
|
end
|
119
123
|
end
|
120
124
|
end
|
@@ -21,6 +21,7 @@ module JustimmoClient
|
|
21
21
|
# @option options [Float] :price_per_sqm_min
|
22
22
|
# @option options [Float] :price_per_sqm_max
|
23
23
|
# @option options [Integer] :type_id
|
24
|
+
# @option options [Symbol, String, Array<Symbol, String>] :type
|
24
25
|
# @option options [Integer] :sub_type_id
|
25
26
|
# @option options [Symbol, String] :tag
|
26
27
|
# @option options [String, Integer] :zip_code
|
@@ -47,7 +48,7 @@ module JustimmoClient
|
|
47
48
|
# @option options [Boolean] :purcase
|
48
49
|
# @option options [Integer] :owner_id
|
49
50
|
# @option options [Integer] :project_id
|
50
|
-
# @option options [
|
51
|
+
# @option options [String] :system_type
|
51
52
|
# @option options [Integer] :parent_id
|
52
53
|
# @option options [DateTime] :updated_at_min
|
53
54
|
# @option options [DateTime] :updated_at_max
|