oneaccess 0.1.9 → 0.2.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/README.md +38 -22
- data/lib/oneaccess.rb +17 -10
- data/lib/oneaccess/api/api_base.rb +51 -0
- data/lib/oneaccess/api/v1_1/base.rb +19 -0
- data/lib/oneaccess/api/v1_1/entitlement/organization/product_group.rb +26 -0
- data/lib/oneaccess/api/v1_1/entitlement/research/user_requests.rb +60 -0
- data/lib/oneaccess/api/v1_1/entitlement/user/product_group.rb +26 -0
- data/lib/oneaccess/api/v1_1/entitlement/user_subscription.rb +29 -0
- data/lib/oneaccess/api/v1_1/organizations.rb +18 -0
- data/lib/oneaccess/api/v1_1/references.rb +45 -0
- data/lib/oneaccess/api/v1_1/research.rb +23 -0
- data/lib/oneaccess/api/v1_1/symbology.rb +28 -0
- data/lib/oneaccess/api/v1_1/user.rb +17 -0
- data/lib/oneaccess/api/v3_0/base.rb +19 -0
- data/lib/oneaccess/api/v3_0/references.rb +32 -0
- data/lib/oneaccess/configuration.rb +6 -3
- data/lib/oneaccess/data_object/contributor.rb +20 -0
- data/lib/oneaccess/data_object/meta.rb +16 -0
- data/lib/oneaccess/data_object/representer/contributor.rb +16 -0
- data/lib/oneaccess/data_object/representer/meta.rb +15 -0
- data/lib/oneaccess/http/http_client.rb +36 -0
- data/lib/oneaccess/request/contributors_request_handler.rb +45 -0
- data/lib/oneaccess/response/contributors_response.rb +16 -0
- data/lib/oneaccess/response/representer/contributors_response.rb +20 -0
- data/oneaccess.gemspec +2 -2
- metadata +23 -12
- data/lib/oneaccess/api/base.rb +0 -64
- data/lib/oneaccess/api/entitlement/organization/product_group.rb +0 -24
- data/lib/oneaccess/api/entitlement/research/user_requests.rb +0 -58
- data/lib/oneaccess/api/entitlement/user/product_group.rb +0 -24
- data/lib/oneaccess/api/entitlement/user_subscription.rb +0 -27
- data/lib/oneaccess/api/organizations.rb +0 -16
- data/lib/oneaccess/api/references.rb +0 -42
- data/lib/oneaccess/api/research.rb +0 -21
- data/lib/oneaccess/api/symbology.rb +0 -26
- data/lib/oneaccess/api/user.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 836845ecbb1939336288daf6be66a83ca10c80a1
|
4
|
+
data.tar.gz: 16607132135ce2ea5cde2abc5cf5b0ef19c15f26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49d3e9169e15f060e8954cbcd5c031382fdf00c31dd1a965ed9219e9b4e4771c6a18f6b2441d538edfef593414f05586956df54394844c00c66935949508bdb6
|
7
|
+
data.tar.gz: 77555cb7e8a18d7db375b4b5d31b6eae4a23283360fb76e3da4c95b443a84bbf23dff11cb3b876803f7d7df896a34659360024ac1354cdd4b6eb7cc8d2e2cf1c
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@ This is a ruby gem that wraps the ONEAccess API in an easy to use ruby library,
|
|
4
4
|
The full documentation about the ONEAccess API can be found at:
|
5
5
|
http://apidocs.oneaccess.io/docs
|
6
6
|
|
7
|
-
Currently, only the version `v1.1`
|
7
|
+
Currently, only the version `v1.1` and `v3.0` are supported by this gem.
|
8
8
|
|
9
9
|
## Installation & Setup
|
10
10
|
Install the gem directly:
|
@@ -51,9 +51,9 @@ This method returns a `User` object if it matches the first name, last name, and
|
|
51
51
|
|
52
52
|
#### How to use:
|
53
53
|
```ruby
|
54
|
-
resp = ONEAccess::API::User.getByEmail(first_name: 'Alex', last_name: 'Santos', email: 'alex@ae.com')
|
54
|
+
resp = ONEAccess::API::V1_1::User.getByEmail(first_name: 'Alex', last_name: 'Santos', email: 'alex@ae.com')
|
55
55
|
|
56
|
-
resp.data #=> instance of
|
56
|
+
resp.data #=> instance of ONEAccess::DataObject::User
|
57
57
|
resp.data.id #=> 305 (id of the user)
|
58
58
|
resp.data.organization.id #=> 805 (id of the company)
|
59
59
|
resp.data.email #=> alex@ae.com
|
@@ -67,9 +67,9 @@ This method retrieves a research document by providing the research ID and the f
|
|
67
67
|
#### How to use:
|
68
68
|
```ruby
|
69
69
|
begin
|
70
|
-
resp = ONEAccess::API::Research.document(document_id: 2341, first_name: 'Alex', last_name: 'Santos', email: 'alex@ae.com')
|
70
|
+
resp = ONEAccess::API::V1_1::Research.document(document_id: 2341, first_name: 'Alex', last_name: 'Santos', email: 'alex@ae.com')
|
71
71
|
|
72
|
-
resp.data #=> instance of
|
72
|
+
resp.data #=> instance of ONEAccess::DataObject::ResearchDocumentInfo
|
73
73
|
resp.data.url #=> url of the document
|
74
74
|
resp.data.title #=> document's title
|
75
75
|
resp.data.saml #=> instance of ONEAccess::DataObject::SAMLInfo
|
@@ -91,9 +91,9 @@ Similar to the previous method, this method retrieves a research document by pro
|
|
91
91
|
#### How to use:
|
92
92
|
```ruby
|
93
93
|
begin
|
94
|
-
resp = ONEAccess::API::Research.document_by_user_id(document_id: 2341, user_id: 805)
|
94
|
+
resp = ONEAccess::API::V1_1::Research.document_by_user_id(document_id: 2341, user_id: 805)
|
95
95
|
|
96
|
-
resp.data #=> instance of
|
96
|
+
resp.data #=> instance of ONEAccess::DataObject::ResearchDocumentInfo
|
97
97
|
resp.data.url #=> url of the document
|
98
98
|
resp.data.title #=> document's title
|
99
99
|
resp.data.saml #=> instance of ONEAccess::DataObject::SAMLInfo
|
@@ -114,10 +114,10 @@ This method retrieves a list of symbology companies by providing a `IsPrivate`,
|
|
114
114
|
|
115
115
|
#### How to use:
|
116
116
|
```ruby
|
117
|
-
resp = ONEAccess::API::Symbology.companies(is_private: false, page_number: 0, page_size: 20)
|
117
|
+
resp = ONEAccess::API::V1_1::Symbology.companies(is_private: false, page_number: 0, page_size: 20)
|
118
118
|
|
119
|
-
resp #=> instance of
|
120
|
-
resp.data #=> instance of Array containing
|
119
|
+
resp #=> instance of ONEAccess::Response::CompaniesResponse
|
120
|
+
resp.data #=> instance of Array containing ONEAccess::DataObject::CompanyLight
|
121
121
|
|
122
122
|
end
|
123
123
|
```
|
@@ -129,10 +129,10 @@ This method retrieves a company by providing an `Id`.
|
|
129
129
|
|
130
130
|
#### How to use:
|
131
131
|
```ruby
|
132
|
-
resp = ONEAccess::API::Symbology.company(id: 1)
|
132
|
+
resp = ONEAccess::API::V1_1::Symbology.company(id: 1)
|
133
133
|
|
134
|
-
resp #=> instance of
|
135
|
-
resp.data #=> instance of Array containing
|
134
|
+
resp #=> instance of ONEAccess::Response::CompanyResponse
|
135
|
+
resp.data #=> instance of Array containing ONEAccess::DataObject::Company
|
136
136
|
|
137
137
|
end
|
138
138
|
```
|
@@ -144,9 +144,9 @@ This method returns an Organization by providing the Organization ID.
|
|
144
144
|
|
145
145
|
#### How to use:
|
146
146
|
```ruby
|
147
|
-
resp = ONEAccess::API::Organizations.get_organization(id: 123)
|
147
|
+
resp = ONEAccess::API::V1_1::Organizations.get_organization(id: 123)
|
148
148
|
|
149
|
-
resp.data #=> instance of
|
149
|
+
resp.data #=> instance of ONEAccess::DataObject::Organization
|
150
150
|
resp.data.id #=> id of the Organization
|
151
151
|
resp.data.name #=> name of the Organization
|
152
152
|
resp.data.short_name #=> Short Name of the Organization
|
@@ -167,7 +167,7 @@ Creates a new Research Entitlement Request for the given User.
|
|
167
167
|
#### How to use
|
168
168
|
```ruby
|
169
169
|
begin
|
170
|
-
resp = ONEAccess::API::Entitlement::Research::UserRequests.create(user_id:'123', sell_side_org_id:'456',
|
170
|
+
resp = ONEAccess::API::V1_1::Entitlement::Research::UserRequests.create(user_id:'123', sell_side_org_id:'456',
|
171
171
|
sales_contact_first_name:'John', sales_contact_last_name:'Doe', sales_contact_email:'john.doe@example.com')
|
172
172
|
|
173
173
|
resp.data #=> ID of the new Request
|
@@ -184,9 +184,9 @@ This method returns a list of user entitlement requests based on the specified `
|
|
184
184
|
#### How to use:
|
185
185
|
```ruby
|
186
186
|
begin
|
187
|
-
resp = ONEAccess::API::Entitlement::Research::UserRequests.get_list
|
187
|
+
resp = ONEAccess::API::V1_1::Entitlement::Research::UserRequests.get_list
|
188
188
|
|
189
|
-
resp.data #=> Array of instances of
|
189
|
+
resp.data #=> Array of instances of ONEAccess::DataObject::UserEntitlementRequest
|
190
190
|
rescue ONEAccess::Error::APIError => e
|
191
191
|
puts "Error listing the available user entitlement requests"
|
192
192
|
end
|
@@ -201,9 +201,9 @@ to receive updates from. Returns the API Status Code as the result of the subscr
|
|
201
201
|
#### How to use:
|
202
202
|
```ruby
|
203
203
|
begin
|
204
|
-
resp = ONEAccess::API::Entitlement::UserSubscription.subscribe(user_ids: [<user_ids>])
|
204
|
+
resp = ONEAccess::API::V1_1::Entitlement::UserSubscription.subscribe(user_ids: [<user_ids>])
|
205
205
|
|
206
|
-
resp #=> instance of
|
206
|
+
resp #=> instance of ONEAccess::Response::SubscribeToUpdatesResponse
|
207
207
|
rescue ONEAccess::Error::APIError => e
|
208
208
|
puts "Error subscribing users for entitlements updates"
|
209
209
|
end
|
@@ -223,10 +223,26 @@ Use UTC time zone for date parameter.
|
|
223
223
|
#### How to use:
|
224
224
|
```ruby
|
225
225
|
begin
|
226
|
-
resp = ONEAccess::API::Entitlement::UserSubscription.changed_users(from_date: <utc_string_date>)
|
226
|
+
resp = ONEAccess::API::V1_1::Entitlement::UserSubscription.changed_users(from_date: <utc_string_date>)
|
227
227
|
|
228
|
-
resp #=> instance of
|
228
|
+
resp #=> instance of ONEAccess::Response::ChangedUsersResponse
|
229
229
|
rescue ONEAccess::Error::APIError => e
|
230
230
|
puts "Error getting the list of user ids which entitlements have changed"
|
231
231
|
end
|
232
232
|
```
|
233
|
+
|
234
|
+
### Get Contributors _(/references/contributors)_
|
235
|
+
Official Documentation: http://apidocs.oneaccess.io/v2.0/docs/referencescontributors
|
236
|
+
|
237
|
+
Reference endpoint to help retrieve contributor IDs from names.
|
238
|
+
|
239
|
+
#### How to use:
|
240
|
+
```ruby
|
241
|
+
begin
|
242
|
+
resp = ONEAccess::API::V3_0::References.contributors(contributor_names: [<names>], limit: <limit>, offset: <offset>)
|
243
|
+
|
244
|
+
resp #=> instance of ONEAccess::Response::ContributorsResponse
|
245
|
+
rescue ONEAccess::Error::APIError => e
|
246
|
+
puts "Error getting the list of contributors"
|
247
|
+
end
|
248
|
+
```
|
data/lib/oneaccess.rb
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
require "representable"
|
4
4
|
|
5
|
+
require_relative "./oneaccess/http/http_client"
|
6
|
+
|
5
7
|
require_relative "./oneaccess/configuration"
|
6
8
|
require_relative "./oneaccess/serializable"
|
7
9
|
|
@@ -10,16 +12,21 @@ require_relative "./oneaccess/enum/product_type"
|
|
10
12
|
require_relative "./oneaccess/enum/product_group_status"
|
11
13
|
require_relative "./oneaccess/enum/entitlement_status"
|
12
14
|
|
13
|
-
require_relative "./oneaccess/api/
|
14
|
-
|
15
|
-
require_relative "./oneaccess/api/
|
16
|
-
require_relative "./oneaccess/api/
|
17
|
-
require_relative "./oneaccess/api/
|
18
|
-
require_relative "./oneaccess/api/
|
19
|
-
require_relative "./oneaccess/api/
|
20
|
-
require_relative "./oneaccess/api/
|
21
|
-
require_relative "./oneaccess/api/entitlement/
|
22
|
-
require_relative "./oneaccess/api/entitlement/
|
15
|
+
require_relative "./oneaccess/api/api_base"
|
16
|
+
|
17
|
+
require_relative "./oneaccess/api/v1_1/base"
|
18
|
+
require_relative "./oneaccess/api/v1_1/user"
|
19
|
+
require_relative "./oneaccess/api/v1_1/research"
|
20
|
+
require_relative "./oneaccess/api/v1_1/organizations"
|
21
|
+
require_relative "./oneaccess/api/v1_1/symbology"
|
22
|
+
require_relative "./oneaccess/api/v1_1/references"
|
23
|
+
require_relative "./oneaccess/api/v1_1/entitlement/user_subscription"
|
24
|
+
require_relative "./oneaccess/api/v1_1/entitlement/organization/product_group"
|
25
|
+
require_relative "./oneaccess/api/v1_1/entitlement/user/product_group"
|
26
|
+
require_relative "./oneaccess/api/v1_1/entitlement/research/user_requests"
|
27
|
+
|
28
|
+
require_relative "./oneaccess/api/v3_0/base"
|
29
|
+
require_relative "./oneaccess/api/v3_0/references"
|
23
30
|
|
24
31
|
module ONEAccess
|
25
32
|
def self.configure
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rest-client"
|
4
|
+
require "json"
|
5
|
+
require_relative "../response/api_error"
|
6
|
+
require_relative "../error/api_error"
|
7
|
+
|
8
|
+
module ONEAccess
|
9
|
+
module API
|
10
|
+
class ApiBase
|
11
|
+
class << self
|
12
|
+
def send_get(method, params = {})
|
13
|
+
Http::HttpClient.get(api_url(method), params)
|
14
|
+
end
|
15
|
+
|
16
|
+
def send_post(method, body)
|
17
|
+
Http::HttpClient.post(api_url(method), body, content_type: :json)
|
18
|
+
end
|
19
|
+
|
20
|
+
def resource_api_path
|
21
|
+
const_get("RESOURCE_API_PATH")
|
22
|
+
rescue StandardError
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
|
26
|
+
def api_url(method = nil)
|
27
|
+
url = "#{base_url}#{resource_api_path}"
|
28
|
+
return url if method.nil?
|
29
|
+
"#{url}/#{method}"
|
30
|
+
end
|
31
|
+
|
32
|
+
protected
|
33
|
+
|
34
|
+
def api_path(path)
|
35
|
+
raise "API path has already been set" if resource_api_path
|
36
|
+
self.resource_api_path = path
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def base_url
|
42
|
+
raise "base_url must be implemented"
|
43
|
+
end
|
44
|
+
|
45
|
+
def resource_api_path=(path)
|
46
|
+
const_set("RESOURCE_API_PATH", path)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../api_base"
|
4
|
+
|
5
|
+
module ONEAccess
|
6
|
+
module API
|
7
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
8
|
+
class Base < ApiBase
|
9
|
+
class << self
|
10
|
+
private
|
11
|
+
|
12
|
+
def base_url
|
13
|
+
Configuration.base_v1_1_url
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "../../../../response/product_groups_response"
|
3
|
+
|
4
|
+
module ONEAccess
|
5
|
+
module API
|
6
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
7
|
+
module Entitlement
|
8
|
+
module Organization
|
9
|
+
class ProductGroup < Base
|
10
|
+
api_path "/entitlement/organization/productgroup"
|
11
|
+
|
12
|
+
def self.get_list(contributor_org_id:, page_number: 0, page_size: 20, type: nil)
|
13
|
+
resp = send_get("getList", Query: {
|
14
|
+
PageNumber: page_number,
|
15
|
+
PageSize: page_size,
|
16
|
+
ContributorOrgId: contributor_org_id,
|
17
|
+
Type: type
|
18
|
+
}.to_json)
|
19
|
+
Response::ProductGroupsResponse.from_json(resp.body)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../../response/user_requests_response"
|
4
|
+
require_relative "../../../../response/user_entitlement_requests_response"
|
5
|
+
|
6
|
+
module ONEAccess
|
7
|
+
module API
|
8
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
9
|
+
module Entitlement
|
10
|
+
module Research
|
11
|
+
class UserRequests < Base
|
12
|
+
api_path "/entitlement/research/userRequests"
|
13
|
+
|
14
|
+
def self.create(user_id:, sell_side_org_id:, sales_contact_first_name: nil, sales_contact_last_name: nil,
|
15
|
+
sales_contact_email: nil)
|
16
|
+
response = send_post("create",
|
17
|
+
UserId: user_id,
|
18
|
+
SellSideOrgId: sell_side_org_id,
|
19
|
+
SalesContact: {
|
20
|
+
FirstName: sales_contact_first_name,
|
21
|
+
LastName: sales_contact_last_name,
|
22
|
+
Email: sales_contact_email
|
23
|
+
}.reject { |_, value| value.nil? })
|
24
|
+
|
25
|
+
Response::UserRequestsResponse.from_json(response.body)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.get_list( # rubocop:disable Metrics/ParameterLists, Metrics/MethodLength
|
29
|
+
user_ids: [],
|
30
|
+
page_number: 0,
|
31
|
+
page_size: 20,
|
32
|
+
sort_by: "UserEntitlementRequestId",
|
33
|
+
is_ascending: false,
|
34
|
+
create_date_from: nil,
|
35
|
+
create_date_to: nil,
|
36
|
+
sell_side_org_ids: nil,
|
37
|
+
entitlement_status: nil
|
38
|
+
)
|
39
|
+
query = {
|
40
|
+
UserIds: user_ids,
|
41
|
+
PageNumber: page_number,
|
42
|
+
PageSize: page_size,
|
43
|
+
SortBy: sort_by,
|
44
|
+
IsAscending: is_ascending,
|
45
|
+
CreateDateFrom: create_date_from,
|
46
|
+
CreateDateTo: create_date_to,
|
47
|
+
SellSideOrgIds: sell_side_org_ids,
|
48
|
+
EntitlementStatus: entitlement_status
|
49
|
+
}.reject { |_, value| value.nil? }
|
50
|
+
|
51
|
+
response = send_get("getListWithEntitlementsStatus", Query: query.to_json)
|
52
|
+
|
53
|
+
Response::UserEntitlementRequestsResponse.from_json(response.body)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "../../../../response/product_groups_response"
|
3
|
+
|
4
|
+
module ONEAccess
|
5
|
+
module API
|
6
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
7
|
+
module Entitlement
|
8
|
+
module User
|
9
|
+
class ProductGroup < Base
|
10
|
+
api_path "/entitlement/user/productgroup"
|
11
|
+
|
12
|
+
def self.get_list(user_id:, page_number: 0, page_size: 20, type: nil)
|
13
|
+
resp = send_get("getList", Query: {
|
14
|
+
PageNumber: page_number,
|
15
|
+
PageSize: page_size,
|
16
|
+
UserId: user_id,
|
17
|
+
Type: type
|
18
|
+
}.to_json)
|
19
|
+
Response::ProductGroupsResponse.from_json(resp.body)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../response/subscribe_to_updates_response"
|
4
|
+
require_relative "../../../response/changed_users_response"
|
5
|
+
|
6
|
+
module ONEAccess
|
7
|
+
module API
|
8
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
9
|
+
module Entitlement
|
10
|
+
class UserSubscription < Base
|
11
|
+
api_path "/entitlement/userSubscription"
|
12
|
+
|
13
|
+
def self.subscribe(user_ids:)
|
14
|
+
response = send_post("subscribeToUpdates", user_ids)
|
15
|
+
|
16
|
+
Response::SubscribeToUpdatesResponse.from_json(response.body)
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.changed_users(from_date: nil)
|
20
|
+
params = { dateFrom: from_date }.reject { |_, v| v.nil? }
|
21
|
+
response = send_get("subscribeToUpdates/changedUsers/getList", params)
|
22
|
+
|
23
|
+
Response::ChangedUsersResponse.from_json(response.body)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../response/organization_response"
|
4
|
+
|
5
|
+
module ONEAccess
|
6
|
+
module API
|
7
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
8
|
+
class Organizations < Base
|
9
|
+
api_path "/organizations"
|
10
|
+
|
11
|
+
def self.get(id:)
|
12
|
+
resp = send_get("get/#{id}")
|
13
|
+
Response::OrganizationResponse.from_json(resp.body)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../response/industries_response"
|
4
|
+
require_relative "../../response/countries_response"
|
5
|
+
require_relative "../../response/contributors_response"
|
6
|
+
|
7
|
+
module ONEAccess
|
8
|
+
module API
|
9
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
10
|
+
class References < Base
|
11
|
+
api_path "/references"
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def industries(sort_by: "Id", is_ascending: false, keyword: "", page_number: 0, page_size: 20)
|
15
|
+
query = build_query(sort_by, is_ascending, keyword, page_number, page_size)
|
16
|
+
|
17
|
+
resp = send_get("industries", Query: query.to_json)
|
18
|
+
|
19
|
+
Response::IndustriesResponse.from_json(resp.body)
|
20
|
+
end
|
21
|
+
|
22
|
+
def countries(sort_by: "Id", is_ascending: false, keyword: "", page_number: 0, page_size: 20)
|
23
|
+
query = build_query(sort_by, is_ascending, keyword, page_number, page_size)
|
24
|
+
|
25
|
+
resp = send_get("countries", Query: query.to_json)
|
26
|
+
|
27
|
+
Response::CountriesResponse.from_json(resp.body)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def build_query(sort_by, is_ascending, keyword, page_number, page_size)
|
33
|
+
{
|
34
|
+
SortBy: sort_by,
|
35
|
+
IsAscending: is_ascending,
|
36
|
+
Keyword: keyword,
|
37
|
+
PageNumber: page_number,
|
38
|
+
PageSize: page_size
|
39
|
+
}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "../../response/research_document_response"
|
3
|
+
|
4
|
+
module ONEAccess
|
5
|
+
module API
|
6
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
7
|
+
class Research < Base
|
8
|
+
api_path "/research"
|
9
|
+
|
10
|
+
def self.document(document_id:, first_name:, last_name:, email:)
|
11
|
+
resp = send_get("document", documentId: document_id, userFirstName: first_name,
|
12
|
+
userLastName: last_name, userEmail: email)
|
13
|
+
Response::ResearchDocumentResponse.from_json(resp.body)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.document_by_user_id(document_id:, user_id:)
|
17
|
+
resp = send_get("documentByUserId", documentId: document_id, userId: user_id)
|
18
|
+
Response::ResearchDocumentResponse.from_json(resp.body)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../response/companies_response"
|
4
|
+
require_relative "../../response/company_response"
|
5
|
+
|
6
|
+
module ONEAccess
|
7
|
+
module API
|
8
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
9
|
+
class Symbology < Base
|
10
|
+
api_path "/symbology"
|
11
|
+
|
12
|
+
def self.companies(is_private:, page_number: 0, page_size: 20)
|
13
|
+
resp = send_get("companies", Query: {
|
14
|
+
PageNumber: page_number,
|
15
|
+
PageSize: page_size,
|
16
|
+
IsPrivate: is_private
|
17
|
+
}.to_json)
|
18
|
+
Response::CompaniesResponse.from_json(resp.body)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.company(id:)
|
22
|
+
resp = send_get("companies/#{id}")
|
23
|
+
Response::CompanyResponse.from_json(resp.body)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "../../response/user_response"
|
3
|
+
|
4
|
+
module ONEAccess
|
5
|
+
module API
|
6
|
+
module V1_1 # rubocop:disable Style/ClassAndModuleCamelCase
|
7
|
+
class User < Base
|
8
|
+
api_path "/user"
|
9
|
+
|
10
|
+
def self.get_by_email(first_name:, last_name:, email:)
|
11
|
+
resp = send_get("getbyemail", userFirstName: first_name, userLastName: last_name, userEmail: email)
|
12
|
+
Response::UserResponse.from_json(resp.body)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../api_base"
|
4
|
+
|
5
|
+
module ONEAccess
|
6
|
+
module API
|
7
|
+
module V3_0 # rubocop:disable Style/ClassAndModuleCamelCase
|
8
|
+
class Base < ApiBase
|
9
|
+
class << self
|
10
|
+
private
|
11
|
+
|
12
|
+
def base_url
|
13
|
+
Configuration.base_v3_0_url
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../response/contributors_response"
|
4
|
+
require_relative "../../request/contributors_request_handler"
|
5
|
+
|
6
|
+
module ONEAccess
|
7
|
+
module API
|
8
|
+
module V3_0 # rubocop:disable Style/ClassAndModuleCamelCase
|
9
|
+
class References < Base
|
10
|
+
api_path "/references"
|
11
|
+
|
12
|
+
class << self
|
13
|
+
def contributors(contributor_names: nil, limit: 20, offset: 0)
|
14
|
+
params = {
|
15
|
+
contributor_names: contributor_names,
|
16
|
+
limit: limit,
|
17
|
+
offset: offset
|
18
|
+
}.reject { |_, v| v.nil? }
|
19
|
+
|
20
|
+
resp = send_get("contributors", params)
|
21
|
+
|
22
|
+
Response::ContributorsResponse.from_json(resp.body)
|
23
|
+
end
|
24
|
+
|
25
|
+
def contributors_list
|
26
|
+
Request::ContributorsRequestHandler.new(url: api_url("contributors"))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -1,14 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module ONEAccess
|
3
3
|
class Configuration
|
4
|
-
|
4
|
+
DEFAULT_BASE_V1_1_URL = "http://ws.oneaccess.io/v1.1"
|
5
|
+
DEFAULT_BASE_V3_0_URL = "http://ws.oneaccess.io/v3.0"
|
5
6
|
|
6
7
|
class << self
|
7
|
-
attr_accessor :
|
8
|
+
attr_accessor :base_v1_1_url
|
9
|
+
attr_accessor :base_v3_0_url
|
8
10
|
attr_accessor :api_key
|
9
11
|
attr_accessor :master_api_key
|
10
12
|
end
|
11
13
|
|
12
|
-
self.
|
14
|
+
self.base_v1_1_url = DEFAULT_BASE_V1_1_URL
|
15
|
+
self.base_v3_0_url = DEFAULT_BASE_V3_0_URL
|
13
16
|
end
|
14
17
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "./representer/contributor"
|
4
|
+
|
5
|
+
module ONEAccess
|
6
|
+
module DataObject
|
7
|
+
class Contributor
|
8
|
+
extend Serializable
|
9
|
+
|
10
|
+
represented_by Representer::Contributor
|
11
|
+
|
12
|
+
attr_accessor :contributor_id
|
13
|
+
attr_accessor :contributor_name
|
14
|
+
attr_accessor :contributor_shortname
|
15
|
+
attr_accessor :active
|
16
|
+
|
17
|
+
alias active? active
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "./representer/meta"
|
3
|
+
|
4
|
+
module ONEAccess
|
5
|
+
module DataObject
|
6
|
+
class Meta
|
7
|
+
extend Serializable
|
8
|
+
|
9
|
+
represented_by Representer::Meta
|
10
|
+
|
11
|
+
attr_accessor :total
|
12
|
+
attr_accessor :limit
|
13
|
+
attr_accessor :offset
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ONEAccess
|
4
|
+
module DataObject
|
5
|
+
module Representer
|
6
|
+
class Contributor < Representable::Decorator
|
7
|
+
include Representable::JSON
|
8
|
+
|
9
|
+
property :contributor_id, type: Integer
|
10
|
+
property :contributor_name, type: String
|
11
|
+
property :contributor_shortname, type: String
|
12
|
+
property :active
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ONEAccess
|
4
|
+
module DataObject
|
5
|
+
module Representer
|
6
|
+
class Meta < Representable::Decorator
|
7
|
+
include Representable::JSON
|
8
|
+
|
9
|
+
property :total, type: Integer
|
10
|
+
property :limit, type: Integer
|
11
|
+
property :offset, type: Integer
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ONEAccess
|
4
|
+
module Http
|
5
|
+
class HttpClient
|
6
|
+
class << self
|
7
|
+
def get(url, params = {})
|
8
|
+
RestClient.get(url, { params: params }.merge(auth_headers))
|
9
|
+
rescue RestClient::Exception => e
|
10
|
+
raise create_api_error(e)
|
11
|
+
end
|
12
|
+
|
13
|
+
def post(url, body, headers = {})
|
14
|
+
RestClient.post(url, body.to_json, headers.merge(auth_headers))
|
15
|
+
rescue RestClient::Exception => e
|
16
|
+
raise create_api_error(e)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def create_api_error(error)
|
22
|
+
api_error_data = Response::APIError.new
|
23
|
+
Response::Representer::APIError.new(api_error_data).from_json(error.http_body)
|
24
|
+
Error::APIError.new(error.http_code, api_error_data.api_status_code, api_error_data.api_status_message)
|
25
|
+
end
|
26
|
+
|
27
|
+
def auth_headers
|
28
|
+
{
|
29
|
+
"X-One-Access-Api-Key" => Configuration.api_key,
|
30
|
+
"Authorization" => "X-One-Access-Master-Api-Key #{Configuration.master_api_key}"
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../response/contributors_response"
|
4
|
+
|
5
|
+
module ONEAccess
|
6
|
+
module Request
|
7
|
+
class ContributorsRequestHandler
|
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::ContributorsResponse.from_json(http_response.body)
|
18
|
+
response&.data&.each do |contributor|
|
19
|
+
yield contributor
|
20
|
+
end
|
21
|
+
break unless more_records?(response.meta)
|
22
|
+
offset += 1
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
PAGE_SIZE = 200
|
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/contributors_response"
|
5
|
+
|
6
|
+
module ONEAccess
|
7
|
+
module Response
|
8
|
+
class ContributorsResponse
|
9
|
+
extend Serializable
|
10
|
+
represented_by Representer::ContributorsResponse
|
11
|
+
|
12
|
+
attr_accessor :meta
|
13
|
+
attr_accessor :data
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "./base_response"
|
4
|
+
require_relative "../../data_object/meta"
|
5
|
+
require_relative "../../data_object/contributor"
|
6
|
+
|
7
|
+
module ONEAccess
|
8
|
+
module Response
|
9
|
+
module Representer
|
10
|
+
class ContributorsResponse < Representable::Decorator
|
11
|
+
include Representable::JSON
|
12
|
+
|
13
|
+
property :meta, decorator: DataObject::Representer::Meta,
|
14
|
+
class: DataObject::Meta
|
15
|
+
collection :data, decorator: DataObject::Representer::Contributor,
|
16
|
+
class: DataObject::Contributor
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/oneaccess.gemspec
CHANGED
@@ -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.
|
5
|
-
s.date = "2018-
|
4
|
+
s.version = "0.2.0"
|
5
|
+
s.date = "2018-02-04"
|
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.
|
4
|
+
version: 0.2.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-
|
11
|
+
date: 2018-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -186,24 +186,29 @@ files:
|
|
186
186
|
- console
|
187
187
|
- docker-compose.yml
|
188
188
|
- lib/oneaccess.rb
|
189
|
-
- lib/oneaccess/api/
|
190
|
-
- lib/oneaccess/api/
|
191
|
-
- lib/oneaccess/api/entitlement/
|
192
|
-
- lib/oneaccess/api/entitlement/
|
193
|
-
- lib/oneaccess/api/entitlement/
|
194
|
-
- lib/oneaccess/api/
|
195
|
-
- lib/oneaccess/api/
|
196
|
-
- lib/oneaccess/api/
|
197
|
-
- lib/oneaccess/api/
|
198
|
-
- lib/oneaccess/api/
|
189
|
+
- lib/oneaccess/api/api_base.rb
|
190
|
+
- lib/oneaccess/api/v1_1/base.rb
|
191
|
+
- lib/oneaccess/api/v1_1/entitlement/organization/product_group.rb
|
192
|
+
- lib/oneaccess/api/v1_1/entitlement/research/user_requests.rb
|
193
|
+
- lib/oneaccess/api/v1_1/entitlement/user/product_group.rb
|
194
|
+
- lib/oneaccess/api/v1_1/entitlement/user_subscription.rb
|
195
|
+
- lib/oneaccess/api/v1_1/organizations.rb
|
196
|
+
- lib/oneaccess/api/v1_1/references.rb
|
197
|
+
- lib/oneaccess/api/v1_1/research.rb
|
198
|
+
- lib/oneaccess/api/v1_1/symbology.rb
|
199
|
+
- lib/oneaccess/api/v1_1/user.rb
|
200
|
+
- lib/oneaccess/api/v3_0/base.rb
|
201
|
+
- lib/oneaccess/api/v3_0/references.rb
|
199
202
|
- lib/oneaccess/configuration.rb
|
200
203
|
- lib/oneaccess/data_object/address.rb
|
201
204
|
- lib/oneaccess/data_object/city.rb
|
202
205
|
- lib/oneaccess/data_object/company.rb
|
203
206
|
- lib/oneaccess/data_object/company_light.rb
|
207
|
+
- lib/oneaccess/data_object/contributor.rb
|
204
208
|
- lib/oneaccess/data_object/country.rb
|
205
209
|
- lib/oneaccess/data_object/global_region.rb
|
206
210
|
- lib/oneaccess/data_object/industry.rb
|
211
|
+
- lib/oneaccess/data_object/meta.rb
|
207
212
|
- lib/oneaccess/data_object/organization.rb
|
208
213
|
- lib/oneaccess/data_object/organization_light.rb
|
209
214
|
- lib/oneaccess/data_object/product_group.rb
|
@@ -212,9 +217,11 @@ files:
|
|
212
217
|
- lib/oneaccess/data_object/representer/city.rb
|
213
218
|
- lib/oneaccess/data_object/representer/company.rb
|
214
219
|
- lib/oneaccess/data_object/representer/company_light.rb
|
220
|
+
- lib/oneaccess/data_object/representer/contributor.rb
|
215
221
|
- lib/oneaccess/data_object/representer/country.rb
|
216
222
|
- lib/oneaccess/data_object/representer/global_region.rb
|
217
223
|
- lib/oneaccess/data_object/representer/industry.rb
|
224
|
+
- lib/oneaccess/data_object/representer/meta.rb
|
218
225
|
- lib/oneaccess/data_object/representer/organization.rb
|
219
226
|
- lib/oneaccess/data_object/representer/organization_light.rb
|
220
227
|
- lib/oneaccess/data_object/representer/product_group.rb
|
@@ -236,11 +243,14 @@ files:
|
|
236
243
|
- lib/oneaccess/enum/product_group_status.rb
|
237
244
|
- lib/oneaccess/enum/product_type.rb
|
238
245
|
- lib/oneaccess/error/api_error.rb
|
246
|
+
- lib/oneaccess/http/http_client.rb
|
247
|
+
- lib/oneaccess/request/contributors_request_handler.rb
|
239
248
|
- lib/oneaccess/response/api_error.rb
|
240
249
|
- lib/oneaccess/response/base_response.rb
|
241
250
|
- lib/oneaccess/response/changed_users_response.rb
|
242
251
|
- lib/oneaccess/response/companies_response.rb
|
243
252
|
- lib/oneaccess/response/company_response.rb
|
253
|
+
- lib/oneaccess/response/contributors_response.rb
|
244
254
|
- lib/oneaccess/response/countries_response.rb
|
245
255
|
- lib/oneaccess/response/industries_response.rb
|
246
256
|
- lib/oneaccess/response/organization_response.rb
|
@@ -251,6 +261,7 @@ files:
|
|
251
261
|
- lib/oneaccess/response/representer/changed_users_response.rb
|
252
262
|
- lib/oneaccess/response/representer/companies_response.rb
|
253
263
|
- lib/oneaccess/response/representer/company_response.rb
|
264
|
+
- lib/oneaccess/response/representer/contributors_response.rb
|
254
265
|
- lib/oneaccess/response/representer/countries_response.rb
|
255
266
|
- lib/oneaccess/response/representer/industries_response.rb
|
256
267
|
- lib/oneaccess/response/representer/organization_response.rb
|
data/lib/oneaccess/api/base.rb
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "rest-client"
|
4
|
-
require "json"
|
5
|
-
require_relative "../response/api_error"
|
6
|
-
require_relative "../error/api_error"
|
7
|
-
|
8
|
-
module ONEAccess
|
9
|
-
module API
|
10
|
-
class Base
|
11
|
-
class << self
|
12
|
-
def send_get(method, params = {})
|
13
|
-
RestClient.get(api_url(method), { params: params }.merge(auth_headers))
|
14
|
-
rescue RestClient::Exception => e
|
15
|
-
raise create_api_error(e)
|
16
|
-
end
|
17
|
-
|
18
|
-
def send_post(method, body)
|
19
|
-
RestClient.post(api_url(method), body.to_json, { content_type: :json }.merge(auth_headers))
|
20
|
-
rescue RestClient::Exception => e
|
21
|
-
raise create_api_error(e)
|
22
|
-
end
|
23
|
-
|
24
|
-
def resource_api_path
|
25
|
-
const_get("RESOURCE_API_PATH")
|
26
|
-
rescue StandardError
|
27
|
-
nil
|
28
|
-
end
|
29
|
-
|
30
|
-
def api_url(method = nil)
|
31
|
-
url = "#{Configuration.base_url}#{resource_api_path}"
|
32
|
-
return url if method.nil?
|
33
|
-
"#{url}/#{method}"
|
34
|
-
end
|
35
|
-
|
36
|
-
protected
|
37
|
-
|
38
|
-
def api_path(path)
|
39
|
-
raise "API path has already been set" if resource_api_path
|
40
|
-
self.resource_api_path = path
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
def create_api_error(error)
|
46
|
-
api_error_data = Response::APIError.new
|
47
|
-
Response::Representer::APIError.new(api_error_data).from_json(error.http_body)
|
48
|
-
Error::APIError.new(error.http_code, api_error_data.api_status_code, api_error_data.api_status_message)
|
49
|
-
end
|
50
|
-
|
51
|
-
def resource_api_path=(path)
|
52
|
-
const_set("RESOURCE_API_PATH", path)
|
53
|
-
end
|
54
|
-
|
55
|
-
def auth_headers
|
56
|
-
{
|
57
|
-
"X-One-Access-Api-Key" => Configuration.api_key,
|
58
|
-
"Authorization" => "X-One-Access-Master-Api-Key #{Configuration.master_api_key}"
|
59
|
-
}
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require_relative "../../../response/product_groups_response"
|
3
|
-
|
4
|
-
module ONEAccess
|
5
|
-
module API
|
6
|
-
module Entitlement
|
7
|
-
module Organization
|
8
|
-
class ProductGroup < Base
|
9
|
-
api_path "/entitlement/organization/productgroup"
|
10
|
-
|
11
|
-
def self.get_list(contributor_org_id:, page_number: 0, page_size: 20, type: nil)
|
12
|
-
resp = send_get("getList", Query: {
|
13
|
-
PageNumber: page_number,
|
14
|
-
PageSize: page_size,
|
15
|
-
ContributorOrgId: contributor_org_id,
|
16
|
-
Type: type
|
17
|
-
}.to_json)
|
18
|
-
Response::ProductGroupsResponse.from_json(resp.body)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../../../response/user_requests_response"
|
4
|
-
require_relative "../../../response/user_entitlement_requests_response"
|
5
|
-
|
6
|
-
module ONEAccess
|
7
|
-
module API
|
8
|
-
module Entitlement
|
9
|
-
module Research
|
10
|
-
class UserRequests < Base
|
11
|
-
api_path "/entitlement/research/userRequests"
|
12
|
-
|
13
|
-
def self.create(user_id:, sell_side_org_id:, sales_contact_first_name: nil, sales_contact_last_name: nil,
|
14
|
-
sales_contact_email: nil)
|
15
|
-
response = send_post("create",
|
16
|
-
UserId: user_id,
|
17
|
-
SellSideOrgId: sell_side_org_id,
|
18
|
-
SalesContact: {
|
19
|
-
FirstName: sales_contact_first_name,
|
20
|
-
LastName: sales_contact_last_name,
|
21
|
-
Email: sales_contact_email
|
22
|
-
}.reject { |_, value| value.nil? })
|
23
|
-
|
24
|
-
Response::UserRequestsResponse.from_json(response.body)
|
25
|
-
end
|
26
|
-
|
27
|
-
def self.get_list( # rubocop:disable Metrics/ParameterLists, Metrics/MethodLength
|
28
|
-
user_ids: [],
|
29
|
-
page_number: 0,
|
30
|
-
page_size: 20,
|
31
|
-
sort_by: "UserEntitlementRequestId",
|
32
|
-
is_ascending: false,
|
33
|
-
create_date_from: nil,
|
34
|
-
create_date_to: nil,
|
35
|
-
sell_side_org_ids: nil,
|
36
|
-
entitlement_status: nil
|
37
|
-
)
|
38
|
-
query = {
|
39
|
-
UserIds: user_ids,
|
40
|
-
PageNumber: page_number,
|
41
|
-
PageSize: page_size,
|
42
|
-
SortBy: sort_by,
|
43
|
-
IsAscending: is_ascending,
|
44
|
-
CreateDateFrom: create_date_from,
|
45
|
-
CreateDateTo: create_date_to,
|
46
|
-
SellSideOrgIds: sell_side_org_ids,
|
47
|
-
EntitlementStatus: entitlement_status
|
48
|
-
}.reject { |_, value| value.nil? }
|
49
|
-
|
50
|
-
response = send_get("getListWithEntitlementsStatus", Query: query.to_json)
|
51
|
-
|
52
|
-
Response::UserEntitlementRequestsResponse.from_json(response.body)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require_relative "../../../response/product_groups_response"
|
3
|
-
|
4
|
-
module ONEAccess
|
5
|
-
module API
|
6
|
-
module Entitlement
|
7
|
-
module User
|
8
|
-
class ProductGroup < Base
|
9
|
-
api_path "/entitlement/user/productgroup"
|
10
|
-
|
11
|
-
def self.get_list(user_id:, page_number: 0, page_size: 20, type: nil)
|
12
|
-
resp = send_get("getList", Query: {
|
13
|
-
PageNumber: page_number,
|
14
|
-
PageSize: page_size,
|
15
|
-
UserId: user_id,
|
16
|
-
Type: type
|
17
|
-
}.to_json)
|
18
|
-
Response::ProductGroupsResponse.from_json(resp.body)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../../response/subscribe_to_updates_response"
|
4
|
-
require_relative "../../response/changed_users_response"
|
5
|
-
|
6
|
-
module ONEAccess
|
7
|
-
module API
|
8
|
-
module Entitlement
|
9
|
-
class UserSubscription < Base
|
10
|
-
api_path "/entitlement/userSubscription"
|
11
|
-
|
12
|
-
def self.subscribe(user_ids:)
|
13
|
-
response = send_post("subscribeToUpdates", user_ids)
|
14
|
-
|
15
|
-
Response::SubscribeToUpdatesResponse.from_json(response.body)
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.changed_users(from_date: nil)
|
19
|
-
params = { dateFrom: from_date }.reject { |_, v| v.nil? }
|
20
|
-
response = send_get("subscribeToUpdates/changedUsers/getList", params)
|
21
|
-
|
22
|
-
Response::ChangedUsersResponse.from_json(response.body)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../response/organization_response"
|
4
|
-
|
5
|
-
module ONEAccess
|
6
|
-
module API
|
7
|
-
class Organizations < Base
|
8
|
-
api_path "/organizations"
|
9
|
-
|
10
|
-
def self.get(id:)
|
11
|
-
resp = send_get("get/#{id}")
|
12
|
-
Response::OrganizationResponse.from_json(resp.body)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../response/industries_response"
|
4
|
-
require_relative "../response/countries_response"
|
5
|
-
|
6
|
-
module ONEAccess
|
7
|
-
module API
|
8
|
-
class References < Base
|
9
|
-
api_path "/references"
|
10
|
-
|
11
|
-
class << self
|
12
|
-
def industries(sort_by: "Id", is_ascending: false, keyword: "", page_number: 0, page_size: 20)
|
13
|
-
query = build_query(sort_by, is_ascending, keyword, page_number, page_size)
|
14
|
-
|
15
|
-
resp = send_get("industries", Query: query.to_json)
|
16
|
-
|
17
|
-
Response::IndustriesResponse.from_json(resp.body)
|
18
|
-
end
|
19
|
-
|
20
|
-
def countries(sort_by: "Id", is_ascending: false, keyword: "", page_number: 0, page_size: 20)
|
21
|
-
query = build_query(sort_by, is_ascending, keyword, page_number, page_size)
|
22
|
-
|
23
|
-
resp = send_get("countries", Query: query.to_json)
|
24
|
-
|
25
|
-
Response::CountriesResponse.from_json(resp.body)
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def build_query(sort_by, is_ascending, keyword, page_number, page_size)
|
31
|
-
{
|
32
|
-
SortBy: sort_by,
|
33
|
-
IsAscending: is_ascending,
|
34
|
-
Keyword: keyword,
|
35
|
-
PageNumber: page_number,
|
36
|
-
PageSize: page_size
|
37
|
-
}
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require_relative "../response/research_document_response"
|
3
|
-
|
4
|
-
module ONEAccess
|
5
|
-
module API
|
6
|
-
class Research < Base
|
7
|
-
api_path "/research"
|
8
|
-
|
9
|
-
def self.document(document_id:, first_name:, last_name:, email:)
|
10
|
-
resp = send_get("document", documentId: document_id, userFirstName: first_name,
|
11
|
-
userLastName: last_name, userEmail: email)
|
12
|
-
Response::ResearchDocumentResponse.from_json(resp.body)
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.document_by_user_id(document_id:, user_id:)
|
16
|
-
resp = send_get("documentByUserId", documentId: document_id, userId: user_id)
|
17
|
-
Response::ResearchDocumentResponse.from_json(resp.body)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../response/companies_response"
|
4
|
-
require_relative "../response/company_response"
|
5
|
-
|
6
|
-
module ONEAccess
|
7
|
-
module API
|
8
|
-
class Symbology < Base
|
9
|
-
api_path "/symbology"
|
10
|
-
|
11
|
-
def self.companies(is_private:, page_number: 0, page_size: 20)
|
12
|
-
resp = send_get("companies", Query: {
|
13
|
-
PageNumber: page_number,
|
14
|
-
PageSize: page_size,
|
15
|
-
IsPrivate: is_private
|
16
|
-
}.to_json)
|
17
|
-
Response::CompaniesResponse.from_json(resp.body)
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.company(id:)
|
21
|
-
resp = send_get("companies/#{id}")
|
22
|
-
Response::CompanyResponse.from_json(resp.body)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
data/lib/oneaccess/api/user.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require_relative "../response/user_response"
|
3
|
-
|
4
|
-
module ONEAccess
|
5
|
-
module API
|
6
|
-
class User < Base
|
7
|
-
api_path "/user"
|
8
|
-
|
9
|
-
def self.get_by_email(first_name:, last_name:, email:)
|
10
|
-
resp = send_get("getbyemail", userFirstName: first_name, userLastName: last_name, userEmail: email)
|
11
|
-
Response::UserResponse.from_json(resp.body)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|