synnex 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa576758ae027bcaf6c94d641c798e86dc6d63c401e53d30c35cde4c7574bf21
4
- data.tar.gz: 3761f7fe3841b1d2600df9762bac19512f971973a4bb4825dcfff118c096514d
3
+ metadata.gz: 153364e0fdd244e0b48bfa1b3c887205cb47bd0edc12fa6036a83daf750d90a4
4
+ data.tar.gz: d86b72bcda517bc967a7b3b7cb96e856d5f9835e7ff5a8de0f9d5dcf998544f1
5
5
  SHA512:
6
- metadata.gz: 1717a3ce99c2b16f2d5183a905c3236112a1db2e6c229bbd08e021ef4be8c0920f05f65192ada57df34d06f1dd512a25ff2496a939a93d4cbd6834b36a0cfa5d
7
- data.tar.gz: fa57efaea9b7275a9e340a9d63178d1d9b57604164768bc8cb5e213685c22c4d211e731aa6ec191e2035e11eb3225c323f55db31fbff0e96d9cbf11cd17ed286
6
+ metadata.gz: c7b05e30b78ccc5f200bf65d5bb5e71f6dde0fd8a968a89c12b4a4d1b8ea3a0b896653a041ee6ff657b6a2763079adab4dcb4e100d9ca4b6f2707dbb6696e8cb
7
+ data.tar.gz: 6b468a3644c5b6af7caff628eb7240fa6f1aa5bd08447b3024e783746a089f8ae63d0ee232546228f0cbf4407ecb9b91b3e26a18b8db3b452c66fef84753779d
@@ -96,11 +96,30 @@ module Synnex
96
96
  .parsed_response["items"]
97
97
  end
98
98
 
99
+ def get_licenses(auth_token, cust_no)
100
+ HTTParty.post("#{@endpoint}/webservice/solutions/csp/license",
101
+ body: {
102
+ action_name: 'get_subscribed_sku',
103
+ snx_eu_no: cust_no
104
+ }.to_json,
105
+ headers: {'Authorization' => "Bearer #{auth_token}"}.merge(Synnex::HEADERS))
106
+ .parsed_response["items"]
107
+ end
99
108
 
109
+ def endpoint
110
+ @endpoint
111
+ end
112
+
113
+ def headers
114
+ @headers
115
+ end
100
116
 
101
117
  private
102
118
 
119
+
103
120
  def get_auth_token
121
+ return @access_token if @access_token
122
+
104
123
  body = {
105
124
  action_name: "create_access_token",
106
125
  user_name: @user_name,
@@ -22,6 +22,10 @@ module Synnex
22
22
  .map {|subscription| Synnex::Subscription.new(api.subscription(subscription["subscription_id"]), self)}
23
23
  end
24
24
 
25
+ def licenses
26
+ api.get_licenses(tenant_access_token, @snx_eu_no)
27
+ end
28
+
25
29
  def users
26
30
  @users ||= api.customer_users(@snx_eu_no)
27
31
  end
@@ -45,5 +49,17 @@ module Synnex
45
49
  def api
46
50
  @api
47
51
  end
52
+
53
+ private
54
+
55
+ def tenant_access_token
56
+ return @token if @token
57
+ body = {
58
+ action_name: "create_tenant_access_token",
59
+ snx_eu_no: @snx_eu_no
60
+ }.to_json
61
+ result = HTTParty.post("#{api.endpoint}/webservice/auth/license/token", body: body, headers: api.headers)
62
+ @token = result.parsed_response['access_token']
63
+ end
48
64
  end
49
65
  end
data/synnex.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "synnex"
4
- spec.version = '0.1.6'
4
+ spec.version = '0.1.7'
5
5
  spec.authors = ["Andrew Gauger"]
6
6
  spec.email = ["andygauge@gmail.com"]
7
7
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synnex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Gauger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-26 00:00:00.000000000 Z
11
+ date: 2021-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty