immoscout 1.1.0 → 1.3.2
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 +5 -5
- data/.github/workflows/documentation.yml +38 -0
- data/.github/workflows/test.yml +62 -0
- data/.gitignore +6 -4
- data/.rubocop.yml +17 -8
- data/.yardopts +6 -0
- data/Appraisals +9 -0
- data/CHANGELOG.md +33 -0
- data/Dockerfile +29 -0
- data/Envfile +6 -0
- data/Gemfile +1 -1
- data/Makefile +152 -0
- data/README.md +5 -5
- data/Rakefile +71 -2
- data/config/docker/.bash_profile +3 -0
- data/config/docker/.bashrc +48 -0
- data/config/docker/.inputrc +17 -0
- data/doc/assets/project.svg +68 -0
- data/docker-compose.yml +9 -0
- data/gemfiles/rails_5.2.gemfile +9 -0
- data/gemfiles/rails_6.0.gemfile +9 -0
- data/immoscout.gemspec +36 -24
- data/lib/immoscout/api/client.rb +4 -2
- data/lib/immoscout/api/connection.rb +4 -2
- data/lib/immoscout/api/request.rb +9 -3
- data/lib/immoscout/configuration.rb +7 -7
- data/lib/immoscout/errors/failed.rb +2 -0
- data/lib/immoscout/models/actions/attachment.rb +27 -9
- data/lib/immoscout/models/actions/contact.rb +10 -2
- data/lib/immoscout/models/actions/publish.rb +3 -1
- data/lib/immoscout/models/actions/real_estate.rb +13 -3
- data/lib/immoscout/models/apartment_buy.rb +1 -1
- data/lib/immoscout/models/base.rb +1 -0
- data/lib/immoscout/models/concerns/modelable.rb +6 -3
- data/lib/immoscout/models/concerns/propertiable.rb +4 -1
- data/lib/immoscout/models/concerns/renderable.rb +13 -0
- data/lib/immoscout/models/contact.rb +1 -1
- data/lib/immoscout/models/document.rb +1 -1
- data/lib/immoscout/models/house_buy.rb +1 -1
- data/lib/immoscout/models/picture.rb +2 -2
- data/lib/immoscout/models/publish.rb +1 -1
- data/lib/immoscout/models.rb +2 -0
- data/lib/immoscout/version.rb +1 -1
- data/lib/immoscout.rb +1 -1
- metadata +198 -36
- data/.travis.yml +0 -20
- data/doc/assets/logo.png +0 -0
- data/doc/assets/project.png +0 -0
- data/doc/assets/project.xcf +0 -0
data/immoscout.gemspec
CHANGED
@@ -1,47 +1,59 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path(
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require
|
5
|
+
require 'immoscout/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name =
|
8
|
+
spec.name = 'immoscout'
|
9
9
|
spec.version = Immoscout::VERSION
|
10
|
-
spec.authors = [
|
11
|
-
spec.email = [
|
10
|
+
spec.authors = ['Marcus Geissler']
|
11
|
+
spec.email = ['marcus.geissler@hanseventures.com']
|
12
12
|
|
13
13
|
spec.summary = 'Ruby client for the Immobilienscout24 REST API'
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
14
|
+
spec.homepage = 'https://github.com/hausgold/immoscout'
|
15
|
+
spec.license = 'MIT'
|
16
|
+
|
17
|
+
spec.required_ruby_version = '~> 2.5'
|
16
18
|
|
17
19
|
# Prevent pushing this gem to RubyGems.org.
|
18
20
|
# To allow pushes either set the 'allowed_push_host'
|
19
21
|
# to allow pushing to a single host or delete this
|
20
22
|
# section to allow pushing to any host.
|
21
23
|
if spec.respond_to?(:metadata)
|
22
|
-
spec.metadata[
|
24
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
23
25
|
else
|
24
|
-
raise
|
25
|
-
|
26
|
+
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
27
|
+
'public gem pushes.'
|
26
28
|
end
|
27
29
|
|
28
30
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
29
31
|
f.match(%r{^(test|spec|features)/})
|
30
32
|
end
|
31
|
-
spec.bindir =
|
33
|
+
spec.bindir = 'exe'
|
32
34
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
33
|
-
spec.require_paths = [
|
34
|
-
spec.add_dependency
|
35
|
-
spec.add_dependency
|
36
|
-
spec.add_dependency
|
37
|
-
spec.add_dependency
|
35
|
+
spec.require_paths = ['lib']
|
36
|
+
spec.add_dependency 'activesupport', '>= 5.2.0'
|
37
|
+
spec.add_dependency 'faraday', '~> 1.0'
|
38
|
+
spec.add_dependency 'faraday_middleware', '~> 1.0'
|
39
|
+
spec.add_dependency 'simple_oauth', '>= 0.3'
|
38
40
|
|
39
|
-
spec.add_development_dependency
|
40
|
-
spec.add_development_dependency
|
41
|
-
spec.add_development_dependency
|
42
|
-
spec.add_development_dependency
|
43
|
-
spec.add_development_dependency
|
44
|
-
spec.add_development_dependency
|
45
|
-
spec.add_development_dependency
|
46
|
-
spec.add_development_dependency
|
41
|
+
spec.add_development_dependency 'appraisal'
|
42
|
+
spec.add_development_dependency 'bundler', '>= 1.16', '< 3'
|
43
|
+
spec.add_development_dependency 'factory_bot', '~> 4.11'
|
44
|
+
spec.add_development_dependency 'railties', '>= 4.2.0', '< 6.1'
|
45
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
46
|
+
spec.add_development_dependency 'rdoc', '~> 6.1'
|
47
|
+
spec.add_development_dependency 'redcarpet', '~> 3.4'
|
48
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
49
|
+
spec.add_development_dependency 'rspec-json_expectations', '~> 1.4'
|
50
|
+
spec.add_development_dependency 'rubocop', '~> 0.63.1'
|
51
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 1.31'
|
52
|
+
spec.add_development_dependency 'simplecov', '< 0.18'
|
53
|
+
spec.add_development_dependency 'terminal-table', '~> 1.8'
|
54
|
+
spec.add_development_dependency 'timecop', '~> 0.9.1'
|
55
|
+
spec.add_development_dependency 'vcr', '~> 3.0'
|
56
|
+
spec.add_development_dependency 'webmock', '~> 3.5'
|
57
|
+
spec.add_development_dependency 'yard', '~> 0.9.18'
|
58
|
+
spec.add_development_dependency 'yard-activesupport-concern', '~> 0.0.1'
|
47
59
|
end
|
data/lib/immoscout/api/client.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Immoscout
|
2
4
|
module Api
|
3
5
|
module Request
|
@@ -17,17 +19,21 @@ module Immoscout
|
|
17
19
|
request(:delete, path, payload, multipart)
|
18
20
|
end
|
19
21
|
|
22
|
+
# rubocop:disable Metrics/MethodLength because of the header handling
|
20
23
|
def request(method, path, payload = nil, multipart = nil)
|
21
24
|
connection.send(method, path, multipart) do |request|
|
22
25
|
if multipart
|
23
|
-
request.headers['Content-Type'] =
|
26
|
+
request.headers['Content-Type'] = 'multipart/form-data'
|
24
27
|
else
|
25
28
|
request.body = payload if payload
|
26
|
-
request.headers['Content-Type'] =
|
29
|
+
request.headers['Content-Type'] = 'application/json;charset=UTF-8'
|
27
30
|
end
|
28
|
-
request.headers['Accept'] =
|
31
|
+
request.headers['Accept'] = 'application/json'
|
32
|
+
request.headers['User-Agent'] = \
|
33
|
+
"HausgoldImmoscout/#{Immoscout::VERSION}"
|
29
34
|
end
|
30
35
|
end
|
36
|
+
# rubocop:enable Metrics/MethodLength
|
31
37
|
end
|
32
38
|
end
|
33
39
|
end
|
@@ -3,24 +3,24 @@
|
|
3
3
|
module Immoscout
|
4
4
|
class Configuration
|
5
5
|
include ActiveSupport::Configurable
|
6
|
-
config_accessor(:consumer_key) { ENV[
|
7
|
-
config_accessor(:consumer_secret) { ENV[
|
6
|
+
config_accessor(:consumer_key) { ENV['IMMOSCOUT_CONSUMER_KEY'] }
|
7
|
+
config_accessor(:consumer_secret) { ENV['IMMOSCOUT_CONSUMER_SECRET'] }
|
8
8
|
|
9
|
-
config_accessor(:oauth_token) { ENV[
|
10
|
-
config_accessor(:oauth_token_secret) { ENV[
|
9
|
+
config_accessor(:oauth_token) { ENV['IMMOSCOUT_OAUTH_TOKEN'] }
|
10
|
+
config_accessor(:oauth_token_secret) { ENV['IMMOSCOUT_OAUTH_TOKEN_SECRET'] }
|
11
11
|
|
12
12
|
config_accessor(:use_sandbox) { false }
|
13
13
|
|
14
|
-
config_accessor(:api_version) {
|
14
|
+
config_accessor(:api_version) { 'v1.0' }
|
15
15
|
|
16
16
|
config_accessor(:user_name) { 'me' }
|
17
17
|
|
18
18
|
config_accessor(:api_url_live) do
|
19
|
-
|
19
|
+
'https://rest.immobilienscout24.de/' \
|
20
20
|
"restapi/api/offer/#{api_version}"
|
21
21
|
end
|
22
22
|
config_accessor(:api_url_sandbox) do
|
23
|
-
|
23
|
+
'https://rest.sandbox-immobilienscout24.de/' \
|
24
24
|
"restapi/api/offer/#{api_version}"
|
25
25
|
end
|
26
26
|
end
|
@@ -1,6 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'json'
|
2
4
|
require_relative '../concerns/modelable'
|
3
5
|
|
6
|
+
# rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
|
7
|
+
# concern looks like
|
4
8
|
module Immoscout
|
5
9
|
module Models
|
6
10
|
module Actions
|
@@ -12,28 +16,39 @@ module Immoscout
|
|
12
16
|
|
13
17
|
self.unpack_collection = proc do |hash|
|
14
18
|
hash
|
15
|
-
.fetch(
|
19
|
+
.fetch('common.attachments')
|
16
20
|
.first
|
17
|
-
.fetch(
|
21
|
+
.fetch('attachment')
|
18
22
|
end
|
19
23
|
|
24
|
+
# rubocop:disable Metrics/AbcSize because this is the
|
25
|
+
# bare minimum logic
|
26
|
+
# rubocop:disable Metrics/MethodLength dito
|
20
27
|
def save
|
21
28
|
attachable_id = attachable.try(:id) || attachable
|
22
29
|
response = api.post(
|
23
30
|
"user/#{api.user_name}/realestate/#{attachable_id}/attachment",
|
24
31
|
nil,
|
25
32
|
attachment: Faraday::UploadIO.new(file, content_type, file_name),
|
26
|
-
metadata:
|
33
|
+
metadata: Faraday::UploadIO.new(
|
34
|
+
StringIO.new(to_json),
|
35
|
+
'application/json',
|
36
|
+
'metadata.json'
|
37
|
+
)
|
27
38
|
)
|
28
39
|
handle_response(response)
|
29
40
|
self.id = id_from_response(response)
|
30
41
|
self
|
31
42
|
end
|
43
|
+
# rubocop:enable Metrics/AbcSize
|
44
|
+
# rubocop:enable Metrics/MethodLength
|
32
45
|
|
33
46
|
def destroy
|
34
47
|
attachable_id = attachable.try(:id) || attachable
|
35
48
|
response = api.delete(
|
36
|
-
"user/#{api.user_name}/
|
49
|
+
"user/#{api.user_name}/" \
|
50
|
+
"realestate/#{attachable_id}/" \
|
51
|
+
"attachment/#{id}"
|
37
52
|
)
|
38
53
|
handle_response(response)
|
39
54
|
self
|
@@ -57,14 +72,15 @@ module Immoscout
|
|
57
72
|
class_methods do
|
58
73
|
def content_type_from_extension(ext)
|
59
74
|
{
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
75
|
+
'.jpg' => 'image/jpeg',
|
76
|
+
'.jpeg' => 'image/jpeg',
|
77
|
+
'.gif' => 'image/gif',
|
78
|
+
'.png' => 'image/png',
|
79
|
+
'.pdf' => 'application/pdf'
|
65
80
|
}.fetch(ext)
|
66
81
|
end
|
67
82
|
|
83
|
+
# rubocop:disable Metrics/AbcSize because of the mapping logic
|
68
84
|
def all(real_estate_id)
|
69
85
|
response = api.get(
|
70
86
|
"user/#{api.user_name}/realestate/#{real_estate_id}/attachment"
|
@@ -75,8 +91,10 @@ module Immoscout
|
|
75
91
|
.map { |object| new(object) }
|
76
92
|
.select { |object| object.type =~ /#{name.demodulize}/i }
|
77
93
|
end
|
94
|
+
# rubocop:enable Metrics/AbcSize
|
78
95
|
end
|
79
96
|
end
|
80
97
|
end
|
81
98
|
end
|
82
99
|
end
|
100
|
+
# rubocop:enable Metrics/BlockLength
|
@@ -1,6 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'json'
|
2
4
|
require_relative '../concerns/modelable'
|
3
5
|
|
6
|
+
# rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
|
7
|
+
# concern looks like
|
4
8
|
module Immoscout
|
5
9
|
module Models
|
6
10
|
module Actions
|
@@ -12,10 +16,12 @@ module Immoscout
|
|
12
16
|
|
13
17
|
self.unpack_collection = proc do |hash|
|
14
18
|
hash
|
15
|
-
.fetch(
|
16
|
-
.fetch(
|
19
|
+
.fetch('common.realtorContactDetailsList', {})
|
20
|
+
.fetch('realtorContactDetails', nil)
|
17
21
|
end
|
18
22
|
|
23
|
+
# rubocop:disable Metrics/AbcSize because this is the
|
24
|
+
# bare minimum logic
|
19
25
|
def save
|
20
26
|
response = \
|
21
27
|
if id
|
@@ -28,6 +34,7 @@ module Immoscout
|
|
28
34
|
self.id = id_from_response(response) unless id
|
29
35
|
self
|
30
36
|
end
|
37
|
+
# rubocop:enable Metrics/AbcSize
|
31
38
|
|
32
39
|
def destroy
|
33
40
|
response = api.delete("user/#{api.user_name}/contact/#{id}")
|
@@ -73,3 +80,4 @@ module Immoscout
|
|
73
80
|
end
|
74
81
|
end
|
75
82
|
end
|
83
|
+
# rubocop:enable Metrics/BlockLength
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'json'
|
2
4
|
require_relative '../concerns/modelable'
|
3
5
|
|
@@ -11,7 +13,7 @@ module Immoscout
|
|
11
13
|
include Immoscout::Models::Concerns::Modelable
|
12
14
|
|
13
15
|
def save
|
14
|
-
response = api.post(
|
16
|
+
response = api.post('publish', as_json)
|
15
17
|
handle_response(response)
|
16
18
|
self
|
17
19
|
end
|
@@ -1,6 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'json'
|
2
4
|
require_relative '../concerns/modelable'
|
3
5
|
|
6
|
+
# rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
|
7
|
+
# concern looks like
|
4
8
|
module Immoscout
|
5
9
|
module Models
|
6
10
|
module Actions
|
@@ -12,11 +16,13 @@ module Immoscout
|
|
12
16
|
|
13
17
|
self.unpack_collection = proc do |hash|
|
14
18
|
hash
|
15
|
-
.fetch(
|
16
|
-
.fetch(
|
17
|
-
.fetch(
|
19
|
+
.fetch('realestates.realEstates', {})
|
20
|
+
.fetch('realEstateList', {})
|
21
|
+
.fetch('realEstateElement', nil)
|
18
22
|
end
|
19
23
|
|
24
|
+
# rubocop:disable Metrics/AbcSize because this is the
|
25
|
+
# bare minimum logic
|
20
26
|
def save
|
21
27
|
response = \
|
22
28
|
if id
|
@@ -29,6 +35,7 @@ module Immoscout
|
|
29
35
|
self.id = id_from_response(response) unless id
|
30
36
|
self
|
31
37
|
end
|
38
|
+
# rubocop:enable Metrics/AbcSize
|
32
39
|
|
33
40
|
def destroy
|
34
41
|
response = api.delete("user/#{api.user_name}/realestate/#{id}")
|
@@ -93,6 +100,7 @@ module Immoscout
|
|
93
100
|
find("ext-#{external_id}")
|
94
101
|
end
|
95
102
|
|
103
|
+
# rubocop:disable Metrics/AbcSize because of the mapping logic
|
96
104
|
def all
|
97
105
|
response = api.get("user/#{api.user_name}/realestate")
|
98
106
|
handle_response(response)
|
@@ -101,6 +109,7 @@ module Immoscout
|
|
101
109
|
.map { |object| new(object) }
|
102
110
|
.select { |object| object.type =~ /#{name.demodulize}/i }
|
103
111
|
end
|
112
|
+
# rubocop:enable Metrics/AbcSize
|
104
113
|
|
105
114
|
def first
|
106
115
|
all.first
|
@@ -120,3 +129,4 @@ module Immoscout
|
|
120
129
|
end
|
121
130
|
end
|
122
131
|
end
|
132
|
+
# rubocop:enable Metrics/BlockLength
|
@@ -17,7 +17,7 @@ module Immoscout
|
|
17
17
|
include Immoscout::Models::Concerns::Propertiable
|
18
18
|
include Immoscout::Models::Actions::RealEstate
|
19
19
|
|
20
|
-
self.json_wrapper =
|
20
|
+
self.json_wrapper = 'realestates.apartmentBuy'
|
21
21
|
|
22
22
|
property :id, alias: :@id
|
23
23
|
property :external_id
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'json'
|
2
4
|
|
3
5
|
module Immoscout
|
@@ -37,16 +39,17 @@ module Immoscout
|
|
37
39
|
|
38
40
|
def handle_response(response)
|
39
41
|
return response if response.success?
|
42
|
+
|
40
43
|
raise Immoscout::Errors::Failed, response
|
41
44
|
end
|
42
45
|
|
43
46
|
def id_from_response(response)
|
44
47
|
response
|
45
48
|
.body
|
46
|
-
.fetch(
|
49
|
+
.fetch('common.messages')
|
47
50
|
.first
|
48
|
-
.fetch(
|
49
|
-
.fetch(
|
51
|
+
.fetch('message', {})
|
52
|
+
.fetch('id', nil)
|
50
53
|
end
|
51
54
|
end
|
52
55
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Immoscout
|
2
4
|
module Models
|
3
5
|
module Concerns
|
@@ -16,7 +18,8 @@ module Immoscout
|
|
16
18
|
match = Regexp.last_match(1).intern
|
17
19
|
properties = self.class.properties
|
18
20
|
coerce_klass = properties.fetch(match).fetch(:coerce, nil)
|
19
|
-
return super if !properties.
|
21
|
+
return super if !properties.key?(match) || !coerce_klass
|
22
|
+
|
20
23
|
send("#{match}=", coerce_klass.new)
|
21
24
|
else
|
22
25
|
super
|
@@ -1,5 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'json'
|
2
4
|
|
5
|
+
# rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
|
6
|
+
# concern looks like
|
3
7
|
module Immoscout
|
4
8
|
module Models
|
5
9
|
module Concerns
|
@@ -22,11 +26,16 @@ module Immoscout
|
|
22
26
|
self.class.try(:json_wrapper)
|
23
27
|
end
|
24
28
|
|
29
|
+
# rubocop:disable Metrics/PerceivedComplexity because this is the
|
30
|
+
# bare minimum logic
|
31
|
+
# rubocop:disable Metrics/MethodLength dito
|
32
|
+
# rubocop:disable Metrics/CyclomaticComplexity dito
|
25
33
|
def to_h
|
26
34
|
self.class.properties.each_with_object({}) do |(key, value), memo|
|
27
35
|
# skip if it's readonly and should not be exposed in #as_json
|
28
36
|
readonly = value.fetch(:readonly, false)
|
29
37
|
next if readonly.try(:call, self) || readonly == true
|
38
|
+
|
30
39
|
# use :alias instead of key as json-key
|
31
40
|
property = value.fetch(:alias, key)
|
32
41
|
# use :default if present AND value is nil
|
@@ -42,6 +51,9 @@ module Immoscout
|
|
42
51
|
memo
|
43
52
|
end
|
44
53
|
end
|
54
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
55
|
+
# rubocop:enable Metrics/MethodLength
|
56
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
45
57
|
|
46
58
|
def to_json_wrapped
|
47
59
|
{ self.class.try(:json_wrapper) => to_json_unwrapped }
|
@@ -61,3 +73,4 @@ module Immoscout
|
|
61
73
|
end
|
62
74
|
end
|
63
75
|
end
|
76
|
+
# rubocop:enable Metrics/BlockLength
|
@@ -12,7 +12,7 @@ module Immoscout
|
|
12
12
|
include Immoscout::Models::Concerns::Propertiable
|
13
13
|
include Immoscout::Models::Actions::Contact
|
14
14
|
|
15
|
-
self.json_wrapper =
|
15
|
+
self.json_wrapper = 'common.realtorContactDetail'
|
16
16
|
|
17
17
|
property :id, alias: :@id
|
18
18
|
property :email
|
@@ -19,7 +19,7 @@ module Immoscout
|
|
19
19
|
include Immoscout::Models::Concerns::Propertiable
|
20
20
|
include Immoscout::Models::Actions::RealEstate
|
21
21
|
|
22
|
-
self.json_wrapper =
|
22
|
+
self.json_wrapper = 'realestates.houseBuy'
|
23
23
|
|
24
24
|
property :id, alias: :@id
|
25
25
|
property :external_id
|
@@ -14,10 +14,10 @@ module Immoscout
|
|
14
14
|
|
15
15
|
attr_accessor :attachable, :file
|
16
16
|
|
17
|
-
self.json_wrapper =
|
17
|
+
self.json_wrapper = 'common.attachment'
|
18
18
|
|
19
19
|
property :id, alias: :@id
|
20
|
-
property :type, alias: :'@xsi.type', default:
|
20
|
+
property :type, alias: :'@xsi.type', default: 'common:Picture'
|
21
21
|
property :href, alias: :'@xlink.href'
|
22
22
|
property :publish_date, alias: :@publish_date
|
23
23
|
property :creation, alias: :@creation
|
@@ -13,7 +13,7 @@ module Immoscout
|
|
13
13
|
include Immoscout::Models::Concerns::Propertiable
|
14
14
|
include Immoscout::Models::Actions::Publish
|
15
15
|
|
16
|
-
self.json_wrapper =
|
16
|
+
self.json_wrapper = 'common.publishObject'
|
17
17
|
|
18
18
|
property :real_estate, coerce: Immoscout::Models::Parts::RealEstate
|
19
19
|
property :publish_channel,
|
data/lib/immoscout/models.rb
CHANGED
data/lib/immoscout/version.rb
CHANGED
data/lib/immoscout.rb
CHANGED