is24 0.0.2 → 0.0.3

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 796f124dc5b42c1ee9f57e39c53fadddc1d58114
4
+ data.tar.gz: 793b91c0edc90b4d7bfedbd687a018853fb9019c
5
+ SHA512:
6
+ metadata.gz: 0c6cb236fbc76269422ac79adcb30f32618dd464292cc6caf5ad99e4e5d60d1b1d908fccbcf62dc13fc68e790ae46caed76d9f37a4dfba5fec18e0c97b0d708e
7
+ data.tar.gz: 9e8318bc6f05d68200d337b68d47f64d1ea36edfd772f7b791dfcaee361b51cd1716afff5af21fa65c838506f0ba1b22f136629772c358cc81622f7f1d611204
@@ -1,3 +1,5 @@
1
+ # encoding: UTF-8
2
+
1
3
  require 'is24/logger'
2
4
  require 'faraday'
3
5
  require 'faraday_middleware'
@@ -9,23 +11,90 @@ module Is24
9
11
  include Is24::Logger
10
12
 
11
13
  API_ENDPOINT = "http://rest.immobilienscout24.de/restapi/api/search/v1.0/"
14
+ API_OFFER_ENDPOINT = "http://rest.immobilienscout24.de/restapi/api/offer/v1.0/"
12
15
  API_AUTHORIZATION_ENDPOINT = "http://rest.immobilienscout24.de/restapi/security/"
13
16
 
17
+ # TODO move in separate module
18
+ MARKETING_TYPES = {
19
+ "PURCHASE" => "Kauf",
20
+ "PURCHASE_PER_SQM" => "Kaufpreis/ Quadratmeter",
21
+ "RENT" => "Miete",
22
+ "RENT_PER_SQM" => "Mietpreis/ Quadratmeter",
23
+ "LEASE" => "Leasing",
24
+ "LEASEHOLD" => "",
25
+ "BUDGET_RENT" => "",
26
+ "RENT_AND_BUY" => ""
27
+ }
28
+
29
+ PRICE_INTERVAL_TYPES = {
30
+ "DAY" => "Tag",
31
+ "WEEK" => "Woche",
32
+ "MONTH" => "Monat",
33
+ "YEAR" => "Jahr",
34
+ "ONE_TIME_CHARGE" => "einmalig"
35
+ }
36
+
37
+ REAL_ESTATE_TYPES = {
38
+ "APARTMENT_RENT" => "Wohnung Miete",
39
+ "APARTMENT_BUY" => "Wohnung Kauf",
40
+ "HOUSE_RENT" => "Haus Miete",
41
+ "HOUSE_BUY" => "Haus Kauf",
42
+ "GARAGE_RENT" => "Garage / Stellplatz Miete",
43
+ "GARAGE_BUY" => "Garage / Stellplatz Kauf",
44
+ "LIVING_RENT_SITE" => "Grundstück Wohnen Miete",
45
+ "LIVING_BUY_SITE" => "Grundstück Wohnen Kauf",
46
+ "TRADE_SITE" => "Grundstück Gewerbe",
47
+ "HOUSE_TYPE" => "Typenhäuser",
48
+ "FLAT_SHARE_ROOM" => "WG-Zimmer",
49
+ "SENIOR_CARE" => "Altenpflege",
50
+ "ASSISTED_LIVING" => "Betreutes Wohnen",
51
+ "OFFICE" => "Büro / Praxis",
52
+ "INDUSTRY" => "Hallen / Produktion",
53
+ "STORE" => "Einzelhandel",
54
+ "GASTRONOMY" => "Gastronomie / Hotel",
55
+ "SPECIAL_PURPOSE" => "",
56
+ "INVESTMENT" => "Gewerbeprojekte",
57
+ "COMPULSORY_AUCTION" => "",
58
+ "SHORT_TERM_ACCOMMODATION" => ""
59
+ }
60
+
61
+ # transforms, eg.
62
+ # "SPECIAL_PURPOSE" => ""
63
+ # to
64
+ # "search:SpecialPurpose" => ""
65
+ XSI_SEARCH_TYPES = lambda {
66
+ return Hash[*REAL_ESTATE_TYPES.map{ |v|
67
+ [
68
+ "search:"+v.first.downcase.split("_").map!(&:capitalize).join,
69
+ v[1]
70
+ ]
71
+ }.flatten
72
+ ]
73
+ }.()
74
+
75
+ def self.format_marketing_type(marketing_type)
76
+ MARKETING_TYPES[marketing_type] || ""
77
+ end
78
+
79
+ def self.format_price_interval_type(price_interval_type)
80
+ PRICE_INTERVAL_TYPES[price_interval_type] || ""
81
+ end
82
+
14
83
  def initialize( options = {} )
15
84
  logger "Initialized b'nerd IS24 with options #{options}"
16
-
85
+
17
86
  @token = options[:token] || nil
18
87
  @secret = options[:secret] || nil
19
88
  @consumer_secret = options[:consumer_secret] || nil
20
89
  @consumer_key = options[:consumer_key] || nil
21
-
90
+
22
91
  raise "Missing Credentials!" if @consumer_secret.nil? || @consumer_key.nil?
23
92
  end
24
-
93
+
25
94
  def request_token( callback_uri )
26
95
  # TODO error handling
27
96
  response = connection(:authorization, callback_uri).get("oauth/request_token")
28
-
97
+
29
98
  body = response.body.split('&')
30
99
  response = {
31
100
  :oauth_token => CGI::unescape(body[0].split("=")[1]),
@@ -41,75 +110,106 @@ module Is24
41
110
  @secret = params[:oauth_token_secret]
42
111
 
43
112
  response = connection(:authorization).get("oauth/access_token")
44
- puts response.inspect
45
113
  body = response.body.split('&')
46
-
114
+
47
115
  response = {
48
116
  :oauth_token => body[0].split('=')[1],
49
117
  :oauth_token_secret => CGI::unescape(body[1].split('=')[1]),
50
118
  }
51
-
119
+
52
120
  # set credentials in client
53
121
  @token = response[:oauth_token]
54
122
  @token_secret = response[:oauth_token_secret]
55
-
123
+
56
124
  # return access token and secret
57
125
  response
58
126
  end
59
-
127
+
60
128
  def search(options)
61
129
  defaults = {
62
130
  :channel => "hp",
63
- :realestatetype => "housebuy",
131
+ :realestatetype => ["housebuy"],
64
132
  :geocodes => 1276,
65
- :username => "me"
133
+ :username => "me"
66
134
  }
67
135
  options = defaults.merge(options)
68
-
69
- response = connection.get("search/region", options )
70
- response.body["resultlist.resultlist"]
136
+ types = options[:realestatetype]
137
+
138
+ case types
139
+ when String
140
+ types = [types]
141
+ end
142
+
143
+ objects = []
144
+
145
+ types.each do |type|
146
+ options[:realestatetype] = type
147
+ response = connection.get("search/region", options )
148
+ if response.status == 200
149
+ if response.body["resultlist.resultlist"].resultlistEntries[0]['@numberOfHits'] == "0"
150
+ response.body["resultlist.resultlist"].resultlistEntries[0].resultlistEntries = []
151
+ end
152
+ objects.push response.body["resultlist.resultlist"].resultlistEntries[0]
153
+ end
154
+ end
155
+
156
+ objects
71
157
  end
72
-
158
+
73
159
  def expose(id)
74
160
  response = connection.get("expose/#{id}")
75
161
  response.body["expose.expose"]
76
162
  end
77
-
163
+
164
+ def list_exposes
165
+ response = connection(:offer).get("user/me/realestate?publishchannel=IS24")
166
+ response.body
167
+ end
168
+
169
+ def short_list
170
+ response = connection.get("searcher/me/shortlist/0/entry")
171
+ response.body["shortlist.shortlistEntries"].first["shortlistEntry"]
172
+ end
173
+
78
174
  protected
79
-
175
+
80
176
  def connection(connection_type = :default, callback_uri = nil)
81
-
177
+
82
178
  # set request defaults
83
179
  defaults = {
84
180
  :url => API_ENDPOINT,
85
- :accept => 'application/json',
86
181
  :headers => {
87
182
  :accept => 'application/json',
88
- :user_agent => 'b\'nerd .media IS24 Ruby Client'}
183
+ :user_agent => 'b\'nerd .media IS24 Ruby Client'}
89
184
  }
90
-
185
+
91
186
  defaults.merge!( {
92
187
  :url => API_AUTHORIZATION_ENDPOINT
93
188
  } ) if connection_type =~ /authorization/i
94
-
189
+
190
+ defaults.merge!( {
191
+ :url => API_OFFER_ENDPOINT
192
+ } ) if connection_type =~ /offer/i
193
+
194
+
95
195
  # define oauth credentials
96
196
  oauth = {
97
- :consumer_key => @consumer_key,
98
- :consumer_secret => @consumer_secret,
99
- :token => @token,
197
+ :consumer_key => @consumer_key,
198
+ :consumer_secret => @consumer_secret,
199
+ :token => @token,
100
200
  :token_secret => @secret
101
201
  }
102
-
202
+
103
203
  # merge callback_uri if present
104
204
  oauth.merge!( {
105
205
  :callback => callback_uri
106
206
  } ) if connection_type =~ /authorization/i && callback_uri
107
-
207
+
108
208
  # merge verifier if present
109
209
  oauth.merge!( {
110
210
  :verifier => @oauth_verifier
111
211
  } ) if connection_type =~ /authorization/i && @oauth_verifier
112
-
212
+
113
213
  Faraday::Connection.new( defaults ) do |builder|
114
214
  builder.request :oauth, oauth
115
215
  builder.response :mashify
@@ -117,6 +217,6 @@ module Is24
117
217
  builder.adapter Faraday.default_adapter
118
218
  end
119
219
  end
120
-
220
+
121
221
  end
122
- end
222
+ end
@@ -1,3 +1,3 @@
1
1
  module Is24
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,94 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: is24
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Bernd Suenkel
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-13 00:00:00.000000000 Z
11
+ date: 2014-04-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: multi_json
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: hashie
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: faraday
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: faraday_middleware
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: simple_oauth
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  description: Simple Ruby API Client for Immobilienscout24.
@@ -98,41 +87,33 @@ executables: []
98
87
  extensions: []
99
88
  extra_rdoc_files: []
100
89
  files:
101
- - lib/is24.rb~
90
+ - lib/is24.rb
102
91
  - lib/is24/version.rb
103
92
  - lib/is24/logger.rb
104
- - lib/is24/logger.rb~
105
- - lib/is24/client.rb~
106
- - lib/is24/version.rb~
107
- - lib/bnerd-video.rb~
108
- - lib/bnerd_video.rb~
109
- - lib/bnerd.rb~
110
- - lib/is24.rb
111
93
  - LICENSE.txt
112
94
  - Rakefile
113
95
  - README.md
114
96
  homepage: http://github.com/bnerd/is24
115
97
  licenses: []
98
+ metadata: {}
116
99
  post_install_message:
117
100
  rdoc_options: []
118
101
  require_paths:
119
102
  - lib
120
103
  required_ruby_version: !ruby/object:Gem::Requirement
121
- none: false
122
104
  requirements:
123
- - - ! '>='
105
+ - - '>='
124
106
  - !ruby/object:Gem::Version
125
107
  version: '0'
126
108
  required_rubygems_version: !ruby/object:Gem::Requirement
127
- none: false
128
109
  requirements:
129
- - - ! '>='
110
+ - - '>='
130
111
  - !ruby/object:Gem::Version
131
112
  version: '0'
132
113
  requirements: []
133
114
  rubyforge_project:
134
- rubygems_version: 1.8.24
115
+ rubygems_version: 2.0.3
135
116
  signing_key:
136
- specification_version: 3
117
+ specification_version: 4
137
118
  summary: Ruby API Client for Immobilienscout24.
138
119
  test_files: []
@@ -1,70 +0,0 @@
1
- require 'faraday'
2
- require 'faraday_middleware'
3
- require 'faraday_middleware/response/mashify'
4
-
5
- module Bnerd
6
- class Api
7
-
8
- def initialize( options = {} )
9
- @secret = options[:secret] || nil
10
- @api_key = options[:api_key] || nil
11
- @public_key = options[:public_key] || nil
12
- raise "Invalid Credentials" if @secret.nil? || @api_key.nil?
13
- end
14
-
15
- def videos
16
- connection.get('videos').body
17
- end
18
-
19
- def video(id)
20
- connection.get("videos/#{id}").body.video
21
- end
22
-
23
- def ingest
24
- params = {
25
- api_key: @api_key,
26
- public_key: "f3bbb86e4d9b9a7a60e0b10ba0312535",
27
- timestamp: 1360459978,
28
- signature: '1325ea0ed234cbfceafcff19cc3732731da0d26af3a99f61f57195b271f190cc',
29
- video: {
30
- name: "foo",
31
- description: "bar",
32
- data: Faraday::UploadIO.new('/home/besu/Videos/second/178969.flv', 'video/mp4')
33
- }
34
- }
35
- ingest_connection.post("/", params)
36
- end
37
-
38
- protected
39
-
40
- def ingest_connection
41
- Faraday::Connection.new(
42
- :url => "https://ingest.bnerd.net:8043",
43
- :ssl => { verify: false },
44
- :headers => {
45
- :user_agent => 'b\'nerd .video Ruby Client'}
46
- ) do |builder|
47
- builder.request :multipart
48
- builder.request :url_encoded
49
- builder.adapter Faraday.default_adapter
50
- end
51
- end
52
-
53
- def connection
54
- Faraday::Connection.new(
55
- :url => "http://video.bnerd.net/api/v1",
56
- :accept => 'application/json',
57
- :params => {
58
- auth_token: @secret,
59
- api_key: @api_key
60
- },
61
- :headers => {
62
- :accept => 'application/json',
63
- :user_agent => 'b\'nerd .video Ruby Client'} ) do |builder|
64
- builder.response :mashify
65
- builder.response :json
66
- builder.adapter Faraday.default_adapter
67
- end
68
- end
69
- end
70
- end
@@ -1,71 +0,0 @@
1
- require 'faraday'
2
- require 'faraday_middleware'
3
- require 'faraday_middleware/response/mashify'
4
- require './bnerd/api/logger'
5
-
6
- module Bnerd
7
- class Api
8
-
9
- def initialize( options = {} )
10
- @secret = options[:secret] || nil
11
- @api_key = options[:api_key] || nil
12
- @public_key = options[:public_key] || nil
13
- raise "Invalid Credentials" if @secret.nil? || @api_key.nil?
14
- end
15
-
16
- def videos
17
- connection.get('videos').body
18
- end
19
-
20
- def video(id)
21
- connection.get("videos/#{id}").body.video
22
- end
23
-
24
- def ingest
25
- params = {
26
- api_key: @api_key,
27
- public_key: "f3bbb86e4d9b9a7a60e0b10ba0312535",
28
- timestamp: 1360459978,
29
- signature: '1325ea0ed234cbfceafcff19cc3732731da0d26af3a99f61f57195b271f190cc',
30
- video: {
31
- name: "foo",
32
- description: "bar",
33
- data: Faraday::UploadIO.new('/home/besu/Videos/second/178969.flv', 'video/mp4')
34
- }
35
- }
36
- ingest_connection.post("/", params)
37
- end
38
-
39
- protected
40
-
41
- def ingest_connection
42
- Faraday::Connection.new(
43
- :url => "https://ingest.bnerd.net:8043",
44
- :ssl => { verify: false },
45
- :headers => {
46
- :user_agent => 'b\'nerd .video Ruby Client'}
47
- ) do |builder|
48
- builder.request :multipart
49
- builder.request :url_encoded
50
- builder.adapter Faraday.default_adapter
51
- end
52
- end
53
-
54
- def connection
55
- Faraday::Connection.new(
56
- :url => "http://video.bnerd.net/api/v1",
57
- :accept => 'application/json',
58
- :params => {
59
- auth_token: @secret,
60
- api_key: @api_key
61
- },
62
- :headers => {
63
- :accept => 'application/json',
64
- :user_agent => 'b\'nerd .video Ruby Client'} ) do |builder|
65
- builder.response :mashify
66
- builder.response :json
67
- builder.adapter Faraday.default_adapter
68
- end
69
- end
70
- end
71
- end
@@ -1,92 +0,0 @@
1
- require 'faraday'
2
- require 'faraday_middleware'
3
- require 'faraday_middleware/response/mashify'
4
- require 'bnerd_video/logger'
5
- require 'bnerd_video/model/video'
6
-
7
- module BnerdVideo
8
- class Api
9
- include BnerdVideo::Logger
10
-
11
- # PRODUCTION
12
- API_ENDPOINT = "http://video.bnerd.net/api/v1"
13
- INGEST_ENDPOINT = "https://ingest.bnerd.net:8043"
14
-
15
- # DEVELOPMENT
16
- API_ENDPOINT = "http://video.lvh.me:3000/api/v1"
17
- INGEST_ENDPOINT = "https://ingest.bnerd.net:8043"
18
-
19
- def initialize( options = {} )
20
- logger "Initialized BnerdVideo with options #{options}"
21
-
22
- @secret = options[:secret] || nil
23
- @api_key = options[:api_key] || nil
24
- @public_key = options[:public_key] || nil
25
- raise "Invalid Credentials" if @secret.nil? || @api_key.nil?
26
- end
27
-
28
- def videos
29
- response = connection.get('videos')
30
- response.body.videos.map do |video|
31
- BnerdVideo::Model::Video.new(video, self)
32
- end
33
- end
34
-
35
- def video(id)
36
- response = connection.get("videos/#{id}")
37
- BnerdVideo::Model::Video.new(response.body, self)
38
- end
39
-
40
- def ingest(media, params)
41
- ingest_connection.post("/", params)
42
- end
43
-
44
- def update(model)
45
- response = connection.put("videos/#{model.id}") do |req|
46
- req.headers['Content-Type'] = 'application/json'
47
- req.body = model.to_json
48
- end
49
- BnerdVideo::Model::Video.new(response.body, self)
50
- end
51
-
52
- def destroy(model)
53
- response = connection.delete("videos/#{model.id}") do |req|
54
- req.headers['Content-Type'] = 'application/json'
55
- req.body = model.to_json
56
- end
57
- BnerdVideo::Model::Video.new(response.body, self)
58
- end
59
-
60
- protected
61
-
62
- def ingest_connection
63
- Faraday::Connection.new(
64
- :url => INGEST_ENDPOINT,
65
- :ssl => { verify: false },
66
- :headers => {
67
- :user_agent => 'b\'nerd .video Ruby Client'}
68
- ) do |builder|
69
- builder.request :multipart
70
- builder.request :url_encoded
71
- builder.adapter Faraday.default_adapter
72
- end
73
- end
74
-
75
- def connection
76
- Faraday::Connection.new(
77
- :url => API_ENDPOINT,
78
- :accept => 'application/json',
79
- :params => {
80
- auth_token: @secret,
81
- api_key: @api_key
82
- },
83
- :headers => {
84
- :accept => 'application/json',
85
- :user_agent => 'b\'nerd .video Ruby Client'} ) do |builder|
86
- builder.response :mashify
87
- builder.response :json
88
- builder.adapter Faraday.default_adapter
89
- end
90
- end
91
- end
92
- end
@@ -1,122 +0,0 @@
1
- require 'is24/logger'
2
- require 'faraday'
3
- require 'faraday_middleware'
4
- require 'faraday_middleware/response/mashify'
5
- require 'cgi'
6
-
7
- module Is24
8
- class Api
9
- include Is24::Logger
10
-
11
- API_ENDPOINT = "http://rest.immobilienscout24.de/restapi/api/search/v1.0/"
12
- API_AUTHORIZATION_ENDPOINT = "http://rest.immobilienscout24.de/restapi/security/"
13
-
14
- def initialize( options = {} )
15
- logger "Initialized b'nerd IS24 with options #{options}"
16
-
17
- @token = options[:token] || nil
18
- @secret = options[:secret] || nil
19
- @consumer_secret = options[:consumer_secret] || nil
20
- @consumer_key = options[:consumer_key] || nil
21
-
22
- raise "Missing Credentials!" if @consumer_secret.nil? || @consumer_key.nil?
23
- end
24
-
25
- def request_token( callback_uri )
26
- # TODO error handling
27
- response = connection(:authorization, callback_uri).get("oauth/request_token")
28
-
29
- body = response.body.split('&')
30
- response = {
31
- :oauth_token => CGI::unescape(body[0].split("=")[1]),
32
- :oauth_token_secret => CGI::unescape(body[1].split("=")[1]),
33
- :redirect_uri => "http://rest.immobilienscout24.de/restapi/security/oauth/confirm_access?#{body[0]}"
34
- }
35
- end
36
-
37
- def request_access_token( params = {} )
38
- # TODO error handling
39
- @oauth_verifier = params[:oauth_verifier]
40
- @token = params[:oauth_token]
41
- @secret = params[:oauth_token_secret]
42
-
43
- response = connection(:authorization).get("oauth/access_token")
44
- puts response.inspect
45
- body = response.body.split('&')
46
-
47
- response = {
48
- :oauth_token => body[0].split('=')[1],
49
- :oauth_token_secret => CGI::unescape(body[1].split('=')[1]),
50
- }
51
-
52
- # set credentials in client
53
- @token = response[:oauth_token]
54
- @token_secret = response[:oauth_token_secret]
55
-
56
- # return access token and secret
57
- response
58
- end
59
-
60
- def search(options)
61
- defaults = {
62
- :channel => "hp",
63
- :realestatetype => "housebuy",
64
- :geocodes => 1276,
65
- :username => "me"
66
- }
67
- options = defaults.merge(options)
68
-
69
- response = connection.get("search/region", options )
70
- response.body["resultlist.resultlist"]
71
- end
72
-
73
- def expose(id)
74
- response = connection.get("expose/#{id}")
75
- response.body["expose.expose"]
76
- end
77
-
78
- protected
79
-
80
- def connection(connection_type = :default, callback_uri = nil)
81
-
82
- # set request defaults
83
- defaults = {
84
- :url => API_ENDPOINT,
85
- :accept => 'application/json',
86
- :headers => {
87
- :accept => 'application/json',
88
- :user_agent => 'b\'nerd .media IS24 Ruby Client'}
89
- }
90
-
91
- defaults.merge!( {
92
- :url => API_AUTHORIZATION_ENDPOINT
93
- } ) if connection_type =~ /authorization/i
94
-
95
- # define oauth credentials
96
- oauth = {
97
- :consumer_key => @consumer_key,
98
- :consumer_secret => @consumer_secret,
99
- :token => @token,
100
- :token_secret => @secret
101
- }
102
-
103
- # merge callback_uri if present
104
- oauth.merge!( {
105
- :callback => callback_uri
106
- } ) if connection_type =~ /authorization/i && callback_uri
107
-
108
- # merge verifier if present
109
- oauth.merge!( {
110
- :verifier => @oauth_verifier
111
- } ) if connection_type =~ /authorization/i && @oauth_verifier
112
-
113
- Faraday::Connection.new( defaults ) do |builder|
114
- builder.request :oauth, oauth
115
- builder.response :mashify
116
- builder.response :json unless connection_type =~ /authorization/i
117
- builder.adapter Faraday.default_adapter
118
- end
119
- end
120
-
121
- end
122
- end
@@ -1,10 +0,0 @@
1
- module BnerdVideo
2
- module Api
3
- class Client
4
- include BnerdVideo::Logger
5
-
6
-
7
-
8
- end
9
- end
10
- end
@@ -1,10 +0,0 @@
1
- require 'logger'
2
-
3
- module Is24
4
- module Logger
5
- def logger(msg)
6
- @logger = ::Logger.new(STDOUT)
7
- @logger.info msg
8
- end
9
- end
10
- end
@@ -1,3 +0,0 @@
1
- module Is24
2
- VERSION = "0.0.1"
3
- end