crx_packmgr_api_client 0.1.0 → 1.0.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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -16
  3. data/crx_packmgr_api_client-0.2.0.gem +0 -0
  4. data/crx_packmgr_api_client.gemspec +9 -4
  5. data/docs/DefaultApi.md +457 -7
  6. data/docs/{PackageFilter.md → Filter.md} +2 -2
  7. data/docs/FilterRule.md +9 -0
  8. data/docs/Group.md +11 -0
  9. data/docs/{InlineResponse200.md → GroupList.md} +2 -2
  10. data/docs/InitData.md +13 -0
  11. data/docs/InstallStatus.md +8 -0
  12. data/docs/InstallStatusStatus.md +9 -0
  13. data/docs/Package.md +1 -1
  14. data/docs/PackageList.md +1 -0
  15. data/docs/ServiceResponse.md +12 -0
  16. data/docs/ServiceResponseRequest.md +8 -0
  17. data/docs/ServiceResponseRequestParam.md +9 -0
  18. data/docs/ServiceResponseResponse.md +9 -0
  19. data/docs/UpdateStatus.md +10 -0
  20. data/git_push.sh +1 -1
  21. data/lib/crx_packmgr_api_client.rb +13 -2
  22. data/lib/crx_packmgr_api_client/api/default_api.rb +491 -8
  23. data/lib/crx_packmgr_api_client/api_client.rb +1 -1
  24. data/lib/crx_packmgr_api_client/api_error.rb +1 -1
  25. data/lib/crx_packmgr_api_client/configuration.rb +1 -1
  26. data/lib/crx_packmgr_api_client/models/{package_filter.rb → filter.rb} +3 -3
  27. data/lib/crx_packmgr_api_client/models/filter_rule.rb +241 -0
  28. data/lib/crx_packmgr_api_client/models/group.rb +226 -0
  29. data/lib/crx_packmgr_api_client/models/{inline_response_200.rb → group_list.rb} +10 -10
  30. data/lib/crx_packmgr_api_client/models/init_data.rb +246 -0
  31. data/lib/crx_packmgr_api_client/models/install_status.rb +199 -0
  32. data/lib/crx_packmgr_api_client/models/install_status_status.rb +208 -0
  33. data/lib/crx_packmgr_api_client/models/package.rb +2 -2
  34. data/lib/crx_packmgr_api_client/models/package_list.rb +14 -5
  35. data/lib/crx_packmgr_api_client/models/service_response.rb +235 -0
  36. data/lib/crx_packmgr_api_client/models/service_response_request.rb +201 -0
  37. data/lib/crx_packmgr_api_client/models/service_response_request_param.rb +208 -0
  38. data/lib/crx_packmgr_api_client/models/service_response_response.rb +208 -0
  39. data/lib/crx_packmgr_api_client/models/update_status.rb +217 -0
  40. data/lib/crx_packmgr_api_client/version.rb +2 -2
  41. data/spec/acceptance/default_api_spec.rb +150 -0
  42. data/spec/api/default_api_spec.rb +2 -14
  43. data/spec/api/download_api_spec.rb +95 -0
  44. data/spec/api/groups_api_spec.rb +193 -0
  45. data/spec/api/init_api_spec.rb +104 -0
  46. data/spec/api/installstatus_api_spec.rb +91 -0
  47. data/spec/api/list_api_spec.rb +130 -0
  48. data/spec/api/screenshot_api_spec.rb +93 -0
  49. data/spec/api/service_api_spec.rb +374 -0
  50. data/spec/api/thumbnail_api_spec.rb +93 -0
  51. data/spec/api_client_spec.rb +1 -1
  52. data/spec/configuration_spec.rb +1 -1
  53. data/spec/files/list.json +533 -0
  54. data/spec/files/service_response.txt +11 -0
  55. data/spec/files/service_response1.txt +12 -0
  56. data/spec/files/test-1.0.0.zip +0 -0
  57. data/spec/files/thumbnail.png +0 -0
  58. data/spec/models/filter_rule_spec.rb +63 -0
  59. data/spec/models/{package_filter_spec.rb → filter_spec.rb} +7 -7
  60. data/spec/models/{inline_response_200_spec.rb → group_list_spec.rb} +8 -8
  61. data/spec/models/group_spec.rb +71 -0
  62. data/spec/models/init_data_spec.rb +83 -0
  63. data/spec/models/install_status_spec.rb +53 -0
  64. data/spec/models/install_status_status_spec.rb +59 -0
  65. data/spec/models/package_list_spec.rb +1 -1
  66. data/spec/models/package_spec.rb +1 -1
  67. data/spec/models/service_response_request_param_spec.rb +59 -0
  68. data/spec/models/service_response_request_spec.rb +53 -0
  69. data/spec/models/service_response_response_spec.rb +59 -0
  70. data/spec/models/service_response_spec.rb +77 -0
  71. data/spec/models/update_status_spec.rb +65 -0
  72. data/spec/spec_helper.rb +10 -1
  73. data/spec/spec_helper_acceptance.rb +19 -0
  74. metadata +130 -17
@@ -0,0 +1,217 @@
1
+ =begin
2
+ #CRX Package Manager API
3
+
4
+ #API for interacting with the CRX Package Manager in AEM.
5
+
6
+ OpenAPI spec version: 6.2.0
7
+ Contact: bryan.stopp@gmail.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ Licensed under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License.
12
+ You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS,
18
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ See the License for the specific language governing permissions and
20
+ limitations under the License.
21
+
22
+ =end
23
+
24
+ require 'date'
25
+
26
+ module CrxPackageManager
27
+
28
+ class UpdateStatus
29
+ attr_accessor :success
30
+
31
+ attr_accessor :msg
32
+
33
+ attr_accessor :path
34
+
35
+
36
+ # Attribute mapping from ruby-style variable name to JSON key.
37
+ def self.attribute_map
38
+ {
39
+ :'success' => :'success',
40
+ :'msg' => :'msg',
41
+ :'path' => :'path'
42
+ }
43
+ end
44
+
45
+ # Attribute type mapping.
46
+ def self.swagger_types
47
+ {
48
+ :'success' => :'BOOLEAN',
49
+ :'msg' => :'String',
50
+ :'path' => :'String'
51
+ }
52
+ end
53
+
54
+ # Initializes the object
55
+ # @param [Hash] attributes Model attributes in the form of hash
56
+ def initialize(attributes = {})
57
+ return unless attributes.is_a?(Hash)
58
+
59
+ # convert string to symbol for hash key
60
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
61
+
62
+ if attributes.has_key?(:'success')
63
+ self.success = attributes[:'success']
64
+ end
65
+
66
+ if attributes.has_key?(:'msg')
67
+ self.msg = attributes[:'msg']
68
+ end
69
+
70
+ if attributes.has_key?(:'path')
71
+ self.path = attributes[:'path']
72
+ end
73
+
74
+ end
75
+
76
+ # Show invalid properties with the reasons. Usually used together with valid?
77
+ # @return Array for valid properies with the reasons
78
+ def list_invalid_properties
79
+ invalid_properties = Array.new
80
+ return invalid_properties
81
+ end
82
+
83
+ # Check to see if the all the properties in the model are valid
84
+ # @return true if the model is valid
85
+ def valid?
86
+ return true
87
+ end
88
+
89
+ # Checks equality by comparing each attribute.
90
+ # @param [Object] Object to be compared
91
+ def ==(o)
92
+ return true if self.equal?(o)
93
+ self.class == o.class &&
94
+ success == o.success &&
95
+ msg == o.msg &&
96
+ path == o.path
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Fixnum] Hash code
107
+ def hash
108
+ [success, msg, path].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def build_from_hash(attributes)
115
+ return nil unless attributes.is_a?(Hash)
116
+ self.class.swagger_types.each_pair do |key, type|
117
+ if type =~ /^Array<(.*)>/i
118
+ # check to ensure the input is an array given that the the attribute
119
+ # is documented as an array but the input is not
120
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
121
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
122
+ end
123
+ elsif !attributes[self.class.attribute_map[key]].nil?
124
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
125
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
126
+ end
127
+
128
+ self
129
+ end
130
+
131
+ # Deserializes the data based on type
132
+ # @param string type Data type
133
+ # @param string value Value to be deserialized
134
+ # @return [Object] Deserialized data
135
+ def _deserialize(type, value)
136
+ case type.to_sym
137
+ when :DateTime
138
+ DateTime.parse(value)
139
+ when :Date
140
+ Date.parse(value)
141
+ when :String
142
+ value.to_s
143
+ when :Integer
144
+ value.to_i
145
+ when :Float
146
+ value.to_f
147
+ when :BOOLEAN
148
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
149
+ true
150
+ else
151
+ false
152
+ end
153
+ when :Object
154
+ # generic object (usually a Hash), return directly
155
+ value
156
+ when /\AArray<(?<inner_type>.+)>\z/
157
+ inner_type = Regexp.last_match[:inner_type]
158
+ value.map { |v| _deserialize(inner_type, v) }
159
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
160
+ k_type = Regexp.last_match[:k_type]
161
+ v_type = Regexp.last_match[:v_type]
162
+ {}.tap do |hash|
163
+ value.each do |k, v|
164
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
165
+ end
166
+ end
167
+ else # model
168
+ temp_model = CrxPackageManager.const_get(type).new
169
+ temp_model.build_from_hash(value)
170
+ end
171
+ end
172
+
173
+ # Returns the string representation of the object
174
+ # @return [String] String presentation of the object
175
+ def to_s
176
+ to_hash.to_s
177
+ end
178
+
179
+ # to_body is an alias to to_hash (backward compatibility)
180
+ # @return [Hash] Returns the object in the form of hash
181
+ def to_body
182
+ to_hash
183
+ end
184
+
185
+ # Returns the object in the form of hash
186
+ # @return [Hash] Returns the object in the form of hash
187
+ def to_hash
188
+ hash = {}
189
+ self.class.attribute_map.each_pair do |attr, param|
190
+ value = self.send(attr)
191
+ next if value.nil?
192
+ hash[param] = _to_hash(value)
193
+ end
194
+ hash
195
+ end
196
+
197
+ # Outputs non-array value in the form of hash
198
+ # For object, use to_hash. Otherwise, just return the value
199
+ # @param [Object] value Any valid value
200
+ # @return [Hash] Returns the value in the form of hash
201
+ def _to_hash(value)
202
+ if value.is_a?(Array)
203
+ value.compact.map{ |v| _to_hash(v) }
204
+ elsif value.is_a?(Hash)
205
+ {}.tap do |hash|
206
+ value.each { |k, v| hash[k] = _to_hash(v) }
207
+ end
208
+ elsif value.respond_to? :to_hash
209
+ value.to_hash
210
+ else
211
+ value
212
+ end
213
+ end
214
+
215
+ end
216
+
217
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  #API for interacting with the CRX Package Manager in AEM.
5
5
 
6
- OpenAPI spec version: 1.0.0
6
+ OpenAPI spec version: 6.2.0
7
7
  Contact: bryan.stopp@gmail.com
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -22,5 +22,5 @@ limitations under the License.
22
22
  =end
23
23
 
24
24
  module CrxPackageManager
25
- VERSION = "0.1.0"
25
+ VERSION = "1.0.0"
26
26
  end
@@ -0,0 +1,150 @@
1
+ require 'spec_helper_acceptance'
2
+ require 'xmlsimple'
3
+
4
+ describe 'DefaultApi' do
5
+ before do
6
+ # run before each test
7
+ config = CrxPackageManager::Configuration.new
8
+ config.username = 'admin'
9
+ config.password = 'admin'
10
+ @instance = CrxPackageManager::DefaultApi.new(CrxPackageManager::ApiClient.new(config))
11
+ end
12
+
13
+ after do
14
+ # run after each test
15
+ end
16
+
17
+ let(:package) do
18
+ file = File.new(File.join(File.dirname(__FILE__), '..', 'files', 'test-1.0.0.zip'))
19
+ file
20
+ end
21
+
22
+ let(:path) do
23
+ '/etc/packages/my_packages/test-1.0.0.zip'
24
+ end
25
+
26
+ context 'init' do
27
+ it 'should work' do
28
+ data = @instance.init
29
+ expect(data).to be_a(CrxPackageManager::InitData)
30
+ expect(data.context_path).to eq('/crx')
31
+ expect(data.launchpad_context_path).to eq('/')
32
+ expect(data.jcr_version).to eq('2.0')
33
+ expect(data.workspace).to eq('crx.default')
34
+ expect(data.user_id).to eq('Administrator')
35
+ expect(data.workspaces).to eq(['crx.default'])
36
+ end
37
+ end
38
+
39
+ context 'installstatus' do
40
+ it 'should work' do
41
+ data = @instance.installstatus
42
+ expect(data).to be_a(CrxPackageManager::InstallStatus)
43
+ expect(data.status.finished).to eq(true)
44
+ expect(data.status.item_count).to eq(0)
45
+ end
46
+ end
47
+
48
+
49
+ context 'service upload and update' do
50
+ it 'should support cmd=help' do
51
+ xml = @instance.service_get('help')
52
+ parsed = XmlSimple.xml_in(xml, { ForceArray: %r(param), KeyToSymbol: true, AttrToSymbol: true } )
53
+ sr = CrxPackageManager::ServiceResponse.new
54
+ sr = sr.build_from_hash(parsed)
55
+ expect(sr.version).to eq('1.4.1')
56
+ expect(sr.user).to eq('admin')
57
+ expect(sr.workspace).to eq('crx.default')
58
+ expect(sr.request).not_to be_nil
59
+ req = sr.request
60
+ params = req.param
61
+ expect(params).to be_a(Array)
62
+ expect(params.length).to eq(1)
63
+ expect(params[0].name).to eq('cmd')
64
+ response = sr.response
65
+ expect(response.status[:code].to_i).to eq(200)
66
+ end
67
+
68
+ it 'should support post' do
69
+ xml = @instance.service_post(package)
70
+ parsed = XmlSimple.xml_in(xml, { ForceArray: %r(param), KeyToSymbol: true, AttrToSymbol: true } )
71
+ sr = CrxPackageManager::ServiceResponse.new
72
+ sr = sr.build_from_hash(parsed)
73
+ response = sr.response
74
+ expect(response.status[:code].to_i).to eq(200)
75
+ end
76
+
77
+ it 'should support install' do
78
+ xml = @instance.service_get('inst', name: 'test')
79
+ parsed = XmlSimple.xml_in(xml, { ForceArray: %r(param), KeyToSymbol: true, AttrToSymbol: true } )
80
+ sr = CrxPackageManager::ServiceResponse.new
81
+ sr = sr.build_from_hash(parsed)
82
+ response = sr.response
83
+ expect(response.status[:code].to_i).to eq(200)
84
+ end
85
+
86
+ end
87
+
88
+ context 'list' do
89
+ it 'should work' do
90
+ data = @instance.list(q: 'test')
91
+ expect(data).to be_a(CrxPackageManager::PackageList)
92
+ expect(data.total).to eq(1)
93
+ expect(data.results).not_to be_nil
94
+ entry = data.results[0]
95
+ expect(entry).to be_a(CrxPackageManager::Package)
96
+ expect(entry.pid).to eq('my_packages:test:1.0.0')
97
+ end
98
+ end
99
+
100
+ context 'groups' do
101
+ it 'should work' do
102
+ data = @instance.groups(only_top_level: true)
103
+ expect(data).to be_a(CrxPackageManager::GroupList)
104
+ expect(data.groups).not_to be_nil
105
+ data.groups.each do |grp|
106
+ next if grp.name != 'my_packages'
107
+ expect(grp.title).to eq('my_packages')
108
+ expect(grp.count).to eq(1)
109
+ expect(grp.deep_count).to eq(1)
110
+ end
111
+ end
112
+ end
113
+
114
+ context 'thumbnail' do
115
+ it 'should work' do
116
+ data = @instance.thumbnail(path: path)
117
+ expect(data).to be_a(Tempfile)
118
+ end
119
+
120
+ end
121
+
122
+ context 'download' do
123
+ it 'should work' do
124
+ data = @instance.download(path: '/etc/packages/my_packages/test-1.0.0.zip')
125
+ expect(data).to be_a(Tempfile)
126
+ end
127
+
128
+ end
129
+
130
+ context 'service uninstall and remove' do
131
+ it 'should support uninstall' do
132
+ xml = @instance.service_get('uninst', name: 'test')
133
+ parsed = XmlSimple.xml_in(xml, { ForceArray: %r(param), KeyToSymbol: true, AttrToSymbol: true } )
134
+ sr = CrxPackageManager::ServiceResponse.new
135
+ sr = sr.build_from_hash(parsed)
136
+ response = sr.response
137
+ expect(response.status[:code].to_i).to eq(200)
138
+ end
139
+
140
+ it 'should support rm' do
141
+ xml = @instance.service_get('rm', name: 'test')
142
+ parsed = XmlSimple.xml_in(xml, { ForceArray: %r(param), KeyToSymbol: true, AttrToSymbol: true } )
143
+ sr = CrxPackageManager::ServiceResponse.new
144
+ sr = sr.build_from_hash(parsed)
145
+ response = sr.response
146
+ expect(response.status[:code].to_i).to eq(200)
147
+ end
148
+ end
149
+
150
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  #API for interacting with the CRX Package Manager in AEM.
5
5
 
6
- OpenAPI spec version: 1.0.0
6
+ OpenAPI spec version: 6.2.0
7
7
  Contact: bryan.stopp@gmail.com
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -38,20 +38,8 @@ describe 'DefaultApi' do
38
38
  end
39
39
 
40
40
  describe 'test an instance of DefaultApi' do
41
- it 'should create an instact of DefaultApi' do
41
+ it 'should create an intact of DefaultApi' do
42
42
  expect(@instance).to be_instance_of(CrxPackageManager::DefaultApi)
43
43
  end
44
44
  end
45
-
46
- # unit tests for list
47
- # List all available packages.
48
- # Returns a list of all available packages defined.
49
- # @param [Hash] opts the optional parameters
50
- # @return [InlineResponse200]
51
- describe 'list test' do
52
- it "should work" do
53
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
54
- end
55
- end
56
-
57
45
  end
@@ -0,0 +1,95 @@
1
+ require 'spec_helper'
2
+
3
+ # unit tests for download
4
+ # Download a package
5
+ # Downloads the package at the specified path. Returns a Tempfile object.
6
+ # @param [Hash] opts the optional parameters
7
+ # @option opts [String] :path The path to the package to download.
8
+ # @return [File]
9
+ describe 'DefaultApi#download' do
10
+ before do
11
+ config = CrxPackageManager::Configuration.new
12
+ @instance = CrxPackageManager::DefaultApi.new(CrxPackageManager::ApiClient.new(config))
13
+ end
14
+
15
+ let(:dl) do
16
+ file = File.new(File.join(File.dirname(__FILE__), '..', 'files', 'test-1.0.0.zip'))
17
+ file
18
+ end
19
+
20
+ it 'should work' do
21
+ WebMock.reset!
22
+ path = '/etc/packages/my_packages/test-1.0.0.zip'
23
+ cfg = @instance.api_client.config
24
+ get_stub = stub_request(
25
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/download.jsp"
26
+ ).with(
27
+ query: { path: path }
28
+ ).to_return(status: 200, body: dl, headers: { 'Content-Type' => 'application/octet-stream' })
29
+
30
+ data = @instance.download(path: path)
31
+ expect(data).to be_a(Tempfile)
32
+ expect(get_stub).to have_been_requested
33
+ data.delete
34
+ end
35
+
36
+ it 'should support config changes' do
37
+ WebMock.reset!
38
+ path = '/etc/packages/my_packages/test-1.0.0.zip'
39
+ @instance.api_client.config.configure do |c|
40
+ c.scheme = 'https'
41
+ c.host = 'notlocalhost'
42
+ c.base_path = '/contextroot/crx/packgr'
43
+ c.debugging = true
44
+ end
45
+ cfg = @instance.api_client.config
46
+ get_stub = stub_request(
47
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/download.jsp"
48
+ ).with(
49
+ query: { path: path }
50
+ ).to_return(status: 200, body: dl, headers: { 'Content-Type' => 'application/octet-stream' })
51
+
52
+ data = @instance.download(path: path)
53
+ expect(data).to be_a(Tempfile)
54
+ expect(get_stub).to have_been_requested
55
+ data.delete
56
+
57
+ end
58
+
59
+ it 'should support failures' do
60
+ WebMock.reset!
61
+ path = '/etc/packages/my_packages/test-1.0.0.zip'
62
+ cfg = @instance.api_client.config
63
+ get_stub = stub_request(
64
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/download.jsp"
65
+ ).with(
66
+ query: { path: path }
67
+ ).to_return(status: 404)
68
+
69
+ begin
70
+ @instance.download(path: path)
71
+ rescue CrxPackageManager::ApiError => e
72
+ expect(e).not_to be_nil
73
+ expect(e.code).to eq(404)
74
+ end
75
+
76
+ expect(get_stub).to have_been_requested
77
+ end
78
+
79
+ it 'should ignore other params' do
80
+ WebMock.reset!
81
+ path = '/etc/packages/my_packages/test-1.0.0.zip'
82
+ cfg = @instance.api_client.config
83
+ get_stub = stub_request(
84
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/download.jsp"
85
+ ).with(
86
+ query: { path: path }
87
+ ).to_return(status: 200, body: dl, headers: { 'Content-Type' => 'application/octet-stream' })
88
+
89
+ data = @instance.download(path: path, other_param: 'value')
90
+ expect(data).to be_a(Tempfile)
91
+ expect(get_stub).to have_been_requested
92
+ data.delete
93
+ end
94
+
95
+ end