oneaccess 0.2.0 → 0.3.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
  SHA1:
3
- metadata.gz: 836845ecbb1939336288daf6be66a83ca10c80a1
4
- data.tar.gz: 16607132135ce2ea5cde2abc5cf5b0ef19c15f26
3
+ metadata.gz: 7cb2be652851f8dabc88a0bc8bcef6bae27aa143
4
+ data.tar.gz: d7bc86b14c570ab4cda8cf1f0bcd0efe45b56a3a
5
5
  SHA512:
6
- metadata.gz: 49d3e9169e15f060e8954cbcd5c031382fdf00c31dd1a965ed9219e9b4e4771c6a18f6b2441d538edfef593414f05586956df54394844c00c66935949508bdb6
7
- data.tar.gz: 77555cb7e8a18d7db375b4b5d31b6eae4a23283360fb76e3da4c95b443a84bbf23dff11cb3b876803f7d7df896a34659360024ac1354cdd4b6eb7cc8d2e2cf1c
6
+ metadata.gz: 05d117dba4adb54a89f39b492026b2af6dcce7546f8d2af263e9795a4716f098e63f98d004edef4fad315a4806b9d5b0212d04c514022e94d77fb8cb678ac6a8
7
+ data.tar.gz: 81055f03e9fa3cce90ba8371ef41f4a9355b2d559b915e6591a10a7a24b77d96df64df7f1bc6cddee9752947749b9c12dd2de350b26059fc34519420096bbbe7
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "../../response/contributors_response"
4
+ require_relative "../../response/investors_response"
4
5
  require_relative "../../request/contributors_request_handler"
6
+ require_relative "../../request/investors_request_handler"
5
7
 
6
8
  module ONEAccess
7
9
  module API
@@ -25,6 +27,22 @@ module ONEAccess
25
27
  def contributors_list
26
28
  Request::ContributorsRequestHandler.new(url: api_url("contributors"))
27
29
  end
30
+
31
+ def investors(investor_names: nil, limit: 20, offset: 0)
32
+ params = {
33
+ investor_names: investor_names,
34
+ limit: limit,
35
+ offset: offset
36
+ }.reject { |_, v| v.nil? }
37
+
38
+ resp = send_get("investors", params)
39
+
40
+ Response::InvestorsResponse.from_json(resp.body)
41
+ end
42
+
43
+ def investors_list
44
+ Request::InvestorsRequestHandler.new(url: api_url("investors"))
45
+ end
28
46
  end
29
47
  end
30
48
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "./representer/investor"
4
+
5
+ module ONEAccess
6
+ module DataObject
7
+ class Investor
8
+ extend Serializable
9
+
10
+ represented_by Representer::Investor
11
+
12
+ attr_accessor :investor_id
13
+ attr_accessor :investor_name
14
+ attr_accessor :active
15
+
16
+ alias active? active
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ONEAccess
4
+ module DataObject
5
+ module Representer
6
+ class Investor < Representable::Decorator
7
+ include Representable::JSON
8
+
9
+ property :investor_id, type: Integer
10
+ property :investor_name, type: String
11
+ property :active
12
+ end
13
+ end
14
+ end
15
+ end
@@ -25,7 +25,7 @@ module ONEAccess
25
25
 
26
26
  private
27
27
 
28
- PAGE_SIZE = 200
28
+ PAGE_SIZE = 100
29
29
 
30
30
  attr_reader :url
31
31
  attr_reader :limit
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../response/investors_response"
4
+
5
+ module ONEAccess
6
+ module Request
7
+ class InvestorsRequestHandler
8
+ def initialize(url:, limit: PAGE_SIZE)
9
+ @url = url
10
+ @limit = limit
11
+ end
12
+
13
+ def each
14
+ offset = 0
15
+ loop do
16
+ http_response = Http::HttpClient.get(url, build_params(offset))
17
+ response = Response::InvestorsResponse.from_json(http_response.body)
18
+ response&.data&.each do |investor|
19
+ yield investor
20
+ end
21
+ break unless more_records?(response.meta)
22
+ offset += 1
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ PAGE_SIZE = 100
29
+
30
+ attr_reader :url
31
+ attr_reader :limit
32
+
33
+ def build_params(offset)
34
+ {
35
+ limit: limit,
36
+ offset: offset
37
+ }
38
+ end
39
+
40
+ def more_records?(meta)
41
+ meta.offset < (meta.total / meta.limit).ceil - 1
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "./base_response"
4
+ require_relative "./representer/investors_response"
5
+
6
+ module ONEAccess
7
+ module Response
8
+ class InvestorsResponse
9
+ extend Serializable
10
+ represented_by Representer::InvestorsResponse
11
+
12
+ attr_accessor :meta
13
+ attr_accessor :data
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../data_object/meta"
4
+ require_relative "../../data_object/investor"
5
+
6
+ module ONEAccess
7
+ module Response
8
+ module Representer
9
+ class InvestorsResponse < Representable::Decorator
10
+ include Representable::JSON
11
+
12
+ property :meta, decorator: DataObject::Representer::Meta,
13
+ class: DataObject::Meta
14
+ collection :data, decorator: DataObject::Representer::Investor,
15
+ class: DataObject::Investor
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "oneaccess"
4
- s.version = "0.2.0"
5
- s.date = "2018-02-04"
4
+ s.version = "0.3.0"
5
+ s.date = "2018-02-05"
6
6
  s.summary = "ONEAccess API wrapper"
7
7
  s.description = "Easily communicate with ONEAccess API"
8
8
  s.homepage = "https://github.com/AlphaExchange/rixml"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oneaccess
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Correia Santos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-04 00:00:00.000000000 Z
11
+ date: 2018-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -208,6 +208,7 @@ files:
208
208
  - lib/oneaccess/data_object/country.rb
209
209
  - lib/oneaccess/data_object/global_region.rb
210
210
  - lib/oneaccess/data_object/industry.rb
211
+ - lib/oneaccess/data_object/investor.rb
211
212
  - lib/oneaccess/data_object/meta.rb
212
213
  - lib/oneaccess/data_object/organization.rb
213
214
  - lib/oneaccess/data_object/organization_light.rb
@@ -221,6 +222,7 @@ files:
221
222
  - lib/oneaccess/data_object/representer/country.rb
222
223
  - lib/oneaccess/data_object/representer/global_region.rb
223
224
  - lib/oneaccess/data_object/representer/industry.rb
225
+ - lib/oneaccess/data_object/representer/investor.rb
224
226
  - lib/oneaccess/data_object/representer/meta.rb
225
227
  - lib/oneaccess/data_object/representer/organization.rb
226
228
  - lib/oneaccess/data_object/representer/organization_light.rb
@@ -245,6 +247,7 @@ files:
245
247
  - lib/oneaccess/error/api_error.rb
246
248
  - lib/oneaccess/http/http_client.rb
247
249
  - lib/oneaccess/request/contributors_request_handler.rb
250
+ - lib/oneaccess/request/investors_request_handler.rb
248
251
  - lib/oneaccess/response/api_error.rb
249
252
  - lib/oneaccess/response/base_response.rb
250
253
  - lib/oneaccess/response/changed_users_response.rb
@@ -253,6 +256,7 @@ files:
253
256
  - lib/oneaccess/response/contributors_response.rb
254
257
  - lib/oneaccess/response/countries_response.rb
255
258
  - lib/oneaccess/response/industries_response.rb
259
+ - lib/oneaccess/response/investors_response.rb
256
260
  - lib/oneaccess/response/organization_response.rb
257
261
  - lib/oneaccess/response/paginated_response.rb
258
262
  - lib/oneaccess/response/product_groups_response.rb
@@ -264,6 +268,7 @@ files:
264
268
  - lib/oneaccess/response/representer/contributors_response.rb
265
269
  - lib/oneaccess/response/representer/countries_response.rb
266
270
  - lib/oneaccess/response/representer/industries_response.rb
271
+ - lib/oneaccess/response/representer/investors_response.rb
267
272
  - lib/oneaccess/response/representer/organization_response.rb
268
273
  - lib/oneaccess/response/representer/paginated_response.rb
269
274
  - lib/oneaccess/response/representer/product_groups_response.rb