synnex 0.1.6 → 0.1.7

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
  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