naranya_ecm-sdk 0.0.42 → 0.0.43

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.rspec +3 -0
  4. data/Gemfile +1 -2
  5. data/lib/aasm/persistence/rest_persistence.rb +11 -6
  6. data/lib/naranya_ecm-sdk.rb +4 -65
  7. data/lib/naranya_ecm-sdk/version.rb +1 -1
  8. data/lib/naranya_ecm/models/media_resource.rb +1 -1
  9. data/lib/naranya_ecm/models/notification.rb +2 -2
  10. data/lib/naranya_ecm/rest/errors.rb +16 -3
  11. data/lib/naranya_ecm/rest/finder_methods.rb +4 -4
  12. data/lib/naranya_ecm/rest/model.rb +87 -19
  13. data/lib/naranya_ecm/rest/persistence.rb +234 -46
  14. data/lib/naranya_ecm/rest/relation.rb +15 -5
  15. data/lib/naranya_ecm/search/results.rb +19 -17
  16. data/lib/ncontent-sdk-testing.rb +13 -0
  17. data/lib/ncontent-sdk.rb +85 -0
  18. data/lib/ncontent/sdk/config.rb +75 -0
  19. data/lib/ncontent/sdk/faraday_middleware.rb +4 -0
  20. data/lib/ncontent/sdk/faraday_middleware/required_response_format.rb +14 -0
  21. data/lib/ncontent/sdk/faraday_middleware/response_parser.rb +35 -0
  22. data/lib/ncontent/sdk/faraday_middleware/rest_api_call_benchmark.rb +49 -0
  23. data/lib/ncontent/sdk/railtie.rb +59 -0
  24. data/lib/ncontent/sdk/rest_client.rb +131 -0
  25. data/lib/ncontent/sdk/testing/server_mock.rb +316 -0
  26. data/naranya_ecm-sdk.gemspec +24 -10
  27. metadata +85 -68
  28. data/lib/naranya_ecm/rest/client.rb +0 -92
  29. data/spec/models/category_spec.rb +0 -16
  30. data/spec/models/content_spec.rb +0 -20
  31. data/spec/models/content_version_spec.rb +0 -7
  32. data/spec/models/download_authorization.rb +0 -7
  33. data/spec/models/media_spec.rb +0 -7
  34. data/spec/models/module_spec.rb +0 -18
  35. data/spec/spec_helper.rb +0 -47
  36. data/spec/support/naranya_ecms_shared_specs.rb +0 -21
metadata CHANGED
@@ -1,93 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: naranya_ecm-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.42
4
+ version: 0.0.43
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Quintanilla
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2015-01-22 00:00:00.000000000 Z
11
+ date: 2015-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
- - - ">="
20
+ - - '>='
21
21
  - !ruby/object:Gem::Version
22
22
  version: 4.0.5
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
27
+ - - ~>
28
28
  - !ruby/object:Gem::Version
29
29
  version: '4.0'
30
- - - ">="
30
+ - - '>='
31
31
  - !ruby/object:Gem::Version
32
32
  version: 4.0.5
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activemodel
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ~>
38
38
  - !ruby/object:Gem::Version
39
39
  version: '4.0'
40
- - - ">="
40
+ - - '>='
41
41
  - !ruby/object:Gem::Version
42
42
  version: 4.0.5
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - "~>"
47
+ - - ~>
48
48
  - !ruby/object:Gem::Version
49
49
  version: '4.0'
50
- - - ">="
50
+ - - '>='
51
51
  - !ruby/object:Gem::Version
52
52
  version: 4.0.5
53
53
  - !ruby/object:Gem::Dependency
54
- name: httparty
54
+ name: oauth2
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
57
+ - - ~>
58
58
  - !ruby/object:Gem::Version
59
- version: '0.13'
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 0.13.1
59
+ version: '1.0'
63
60
  type: :runtime
64
61
  prerelease: false
65
62
  version_requirements: !ruby/object:Gem::Requirement
66
63
  requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '0.13'
70
- - - ">="
64
+ - - ~>
71
65
  - !ruby/object:Gem::Version
72
- version: 0.13.1
66
+ version: '1.0'
73
67
  - !ruby/object:Gem::Dependency
74
68
  name: aasm
75
69
  requirement: !ruby/object:Gem::Requirement
76
70
  requirements:
77
- - - "~>"
71
+ - - ~>
78
72
  - !ruby/object:Gem::Version
79
73
  version: '3.2'
80
- - - ">="
74
+ - - '>='
81
75
  - !ruby/object:Gem::Version
82
76
  version: 3.2.1
83
77
  type: :runtime
84
78
  prerelease: false
85
79
  version_requirements: !ruby/object:Gem::Requirement
86
80
  requirements:
87
- - - "~>"
81
+ - - ~>
88
82
  - !ruby/object:Gem::Version
89
83
  version: '3.2'
90
- - - ">="
84
+ - - '>='
91
85
  - !ruby/object:Gem::Version
92
86
  version: 3.2.1
93
87
  - !ruby/object:Gem::Dependency
@@ -108,90 +102,118 @@ dependencies:
108
102
  name: fog
109
103
  requirement: !ruby/object:Gem::Requirement
110
104
  requirements:
111
- - - "~>"
105
+ - - ~>
112
106
  - !ruby/object:Gem::Version
113
107
  version: '1.22'
114
- - - ">="
108
+ - - '>='
115
109
  - !ruby/object:Gem::Version
116
110
  version: 1.22.1
117
111
  type: :runtime
118
112
  prerelease: false
119
113
  version_requirements: !ruby/object:Gem::Requirement
120
114
  requirements:
121
- - - "~>"
115
+ - - ~>
122
116
  - !ruby/object:Gem::Version
123
117
  version: '1.22'
124
- - - ">="
118
+ - - '>='
125
119
  - !ruby/object:Gem::Version
126
120
  version: 1.22.1
127
121
  - !ruby/object:Gem::Dependency
128
122
  name: bundler
129
123
  requirement: !ruby/object:Gem::Requirement
130
124
  requirements:
131
- - - "~>"
125
+ - - ~>
132
126
  - !ruby/object:Gem::Version
133
127
  version: '1.6'
134
128
  type: :development
135
129
  prerelease: false
136
130
  version_requirements: !ruby/object:Gem::Requirement
137
131
  requirements:
138
- - - "~>"
132
+ - - ~>
139
133
  - !ruby/object:Gem::Version
140
134
  version: '1.6'
141
135
  - !ruby/object:Gem::Dependency
142
136
  name: rake
143
137
  requirement: !ruby/object:Gem::Requirement
144
138
  requirements:
145
- - - "~>"
139
+ - - ~>
146
140
  - !ruby/object:Gem::Version
147
141
  version: '10.3'
148
142
  type: :development
149
143
  prerelease: false
150
144
  version_requirements: !ruby/object:Gem::Requirement
151
145
  requirements:
152
- - - "~>"
146
+ - - ~>
153
147
  - !ruby/object:Gem::Version
154
148
  version: '10.3'
149
+ - !ruby/object:Gem::Dependency
150
+ name: factory_girl
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ version: '4.5'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ~>
161
+ - !ruby/object:Gem::Version
162
+ version: '4.5'
155
163
  - !ruby/object:Gem::Dependency
156
164
  name: rspec
157
165
  requirement: !ruby/object:Gem::Requirement
158
166
  requirements:
159
- - - "~>"
167
+ - - ~>
160
168
  - !ruby/object:Gem::Version
161
- version: '3.0'
169
+ version: '3.2'
162
170
  type: :development
163
171
  prerelease: false
164
172
  version_requirements: !ruby/object:Gem::Requirement
165
173
  requirements:
166
- - - "~>"
174
+ - - ~>
167
175
  - !ruby/object:Gem::Version
168
- version: '3.0'
176
+ version: '3.2'
169
177
  - !ruby/object:Gem::Dependency
170
- name: vcr
178
+ name: sinatra
171
179
  requirement: !ruby/object:Gem::Requirement
172
180
  requirements:
173
- - - "~>"
181
+ - - ~>
174
182
  - !ruby/object:Gem::Version
175
- version: '2.9'
183
+ version: '1.4'
176
184
  type: :development
177
185
  prerelease: false
178
186
  version_requirements: !ruby/object:Gem::Requirement
179
187
  requirements:
180
- - - "~>"
188
+ - - ~>
181
189
  - !ruby/object:Gem::Version
182
- version: '2.9'
190
+ version: '1.4'
191
+ - !ruby/object:Gem::Dependency
192
+ name: bson
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: '3.0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ~>
203
+ - !ruby/object:Gem::Version
204
+ version: '3.0'
183
205
  - !ruby/object:Gem::Dependency
184
206
  name: webmock
185
207
  requirement: !ruby/object:Gem::Requirement
186
208
  requirements:
187
- - - "~>"
209
+ - - ~>
188
210
  - !ruby/object:Gem::Version
189
211
  version: '1.18'
190
212
  type: :development
191
213
  prerelease: false
192
214
  version_requirements: !ruby/object:Gem::Requirement
193
215
  requirements:
194
- - - "~>"
216
+ - - ~>
195
217
  - !ruby/object:Gem::Version
196
218
  version: '1.18'
197
219
  description: Cliente Ruby de NaranyaEcm para aplicaciones cliente.
@@ -201,7 +223,8 @@ executables: []
201
223
  extensions: []
202
224
  extra_rdoc_files: []
203
225
  files:
204
- - ".gitignore"
226
+ - .gitignore
227
+ - .rspec
205
228
  - Gemfile
206
229
  - LICENSE.txt
207
230
  - README.rdoc
@@ -227,7 +250,6 @@ files:
227
250
  - lib/naranya_ecm/models/notification.rb
228
251
  - lib/naranya_ecm/rest/association_relation.rb
229
252
  - lib/naranya_ecm/rest/associations.rb
230
- - lib/naranya_ecm/rest/client.rb
231
253
  - lib/naranya_ecm/rest/errors.rb
232
254
  - lib/naranya_ecm/rest/finder_methods.rb
233
255
  - lib/naranya_ecm/rest/model.rb
@@ -237,45 +259,40 @@ files:
237
259
  - lib/naranya_ecm/search/methods.rb
238
260
  - lib/naranya_ecm/search/query.rb
239
261
  - lib/naranya_ecm/search/results.rb
262
+ - lib/ncontent-sdk-testing.rb
263
+ - lib/ncontent-sdk.rb
264
+ - lib/ncontent/sdk/config.rb
265
+ - lib/ncontent/sdk/faraday_middleware.rb
266
+ - lib/ncontent/sdk/faraday_middleware/required_response_format.rb
267
+ - lib/ncontent/sdk/faraday_middleware/response_parser.rb
268
+ - lib/ncontent/sdk/faraday_middleware/rest_api_call_benchmark.rb
269
+ - lib/ncontent/sdk/railtie.rb
270
+ - lib/ncontent/sdk/rest_client.rb
271
+ - lib/ncontent/sdk/testing/server_mock.rb
240
272
  - naranya_ecm-sdk.gemspec
241
- - spec/models/category_spec.rb
242
- - spec/models/content_spec.rb
243
- - spec/models/content_version_spec.rb
244
- - spec/models/download_authorization.rb
245
- - spec/models/media_spec.rb
246
- - spec/models/module_spec.rb
247
- - spec/spec_helper.rb
248
- - spec/support/naranya_ecms_shared_specs.rb
249
273
  homepage: http://naranya.com
250
274
  licenses:
251
275
  - MIT
252
- metadata: {}
276
+ metadata:
277
+ allowed_push_host: https://rubygems.org
253
278
  post_install_message:
254
279
  rdoc_options: []
255
280
  require_paths:
256
281
  - lib
257
282
  required_ruby_version: !ruby/object:Gem::Requirement
258
283
  requirements:
259
- - - ">="
284
+ - - '>='
260
285
  - !ruby/object:Gem::Version
261
286
  version: '0'
262
287
  required_rubygems_version: !ruby/object:Gem::Requirement
263
288
  requirements:
264
- - - ">="
289
+ - - '>='
265
290
  - !ruby/object:Gem::Version
266
291
  version: '0'
267
292
  requirements: []
268
293
  rubyforge_project:
269
- rubygems_version: 2.2.2
294
+ rubygems_version: 2.4.6
270
295
  signing_key:
271
296
  specification_version: 4
272
297
  summary: Cliente Ruby de NaranyaEcm
273
- test_files:
274
- - spec/models/category_spec.rb
275
- - spec/models/content_spec.rb
276
- - spec/models/content_version_spec.rb
277
- - spec/models/download_authorization.rb
278
- - spec/models/media_spec.rb
279
- - spec/models/module_spec.rb
280
- - spec/spec_helper.rb
281
- - spec/support/naranya_ecms_shared_specs.rb
298
+ test_files: []
@@ -1,92 +0,0 @@
1
- require 'httparty'
2
- require 'naranya_ecm/rest/errors'
3
- require 'active_support/core_ext/hash/indifferent_access.rb'
4
- require 'active_support/concern'
5
-
6
- module NaranyaEcm::Rest
7
- class Client
8
-
9
- module HTTPartyPatch
10
- extend ActiveSupport::Concern
11
-
12
- included do
13
- alias_method_chain :format, :patch
14
- end
15
-
16
- def format_with_patch(request, response)
17
- current_time = Time.now.strftime("%Y-%m-%d %H:%M:%S %z")
18
- http_method = request.http_method.name.split("::").last.upcase
19
- path = request.path.to_s
20
- content_length = response.headers['Content-Length']
21
- @logger.send @level, "[#{HTTParty::Logger::ApacheLogger::TAG_NAME}] [#{current_time}] #{response.code} \"#{http_method} #{path}\" #{content_length || "-"} "
22
- end
23
- end
24
-
25
- HTTParty::Logger::ApacheLogger.send :include, HTTPartyPatch
26
-
27
- TOKEN_CACHE_KEY = 'naranya_ecm/client/client_token'
28
-
29
- class << self
30
-
31
- %w(get post put patch delete).map(&:to_sym).each do |method_symbol|
32
- define_method method_symbol do |path, options = {}|
33
- execute_request method_symbol, path, options
34
- end
35
- end
36
-
37
- private
38
-
39
- def execute_request(method, path, options = {})
40
- url = "#{NaranyaEcm.options[:site]}#{path}"
41
-
42
- options[:headers] = {} unless options.has_key? :headers
43
- options[:headers]['Authorization'] = authorization_header
44
-
45
- options[:logger] = NaranyaEcm.logger
46
- options[:log_level] = :debug
47
- options[:log_format] = :apache
48
-
49
- # HTTParty no envía un parametro GET si es un Array vacío.
50
- # Convertir los arrays vacíos a [nil] (WTF?)
51
- if method == :get && options[:query].is_a?(Hash)
52
- options[:query].each { |key, val| options[:query][key] = [nil] if val.is_a?(Array) && val.empty? }
53
- end
54
-
55
- response = HTTParty.send method, url, options
56
-
57
- # Retry if response code is 401 and a client token is present:
58
- if response.code == 401 && authorization_header.present?
59
- options[:headers]['Authorization'] = authorization_header(true)
60
- response = HTTParty.send method, url, options
61
- end
62
- ::NaranyaEcm::Rest::RestError.raise_by_failed_response(response) unless response.success?
63
-
64
- response
65
- end
66
-
67
- # https://github.com/applicake/doorkeeper/wiki/Client-Credentials-flow
68
- def authorization_header(clear = false)
69
-
70
- if clear
71
- @authorization_header = nil
72
- NaranyaEcm.cache.delete TOKEN_CACHE_KEY
73
- end
74
-
75
- @authorization_header ||= NaranyaEcm.cache.fetch(TOKEN_CACHE_KEY) do
76
- token_response = HTTParty.post "#{NaranyaEcm.options[:site]}/oauth/token",
77
- basic_auth: { username: NaranyaEcm.options[:api_key], password: NaranyaEcm.options[:api_secret] },
78
- body: { grant_type: "client_credentials" },
79
- logger: NaranyaEcm.logger,
80
- log_level: :debug,
81
- log_format: :curl
82
-
83
- ::NaranyaEcm::Rest::RestError.raise_by_failed_response(token_response.code) unless token_response.success?
84
-
85
- "Bearer #{token_response['access_token']}"
86
- end
87
- end
88
-
89
- end
90
-
91
- end
92
- end
@@ -1,16 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe NaranyaEcm::Category, vcr: true do
4
-
5
- it_behaves_like "a NaranyaEcm resource"
6
-
7
- describe "#name" do
8
- it "responds to #name" do
9
- expect(subject).to respond_to :name
10
- end
11
- it "responds to #name_translations" do
12
- expect(subject).to respond_to :name_translations
13
- end
14
- end
15
-
16
- end
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe NaranyaEcm::Content, vcr: true do
4
-
5
- it_behaves_like "a NaranyaEcm resource"
6
-
7
- describe "localized title" do
8
- it "responds to #title" do
9
- expect(subject).to respond_to :title
10
- end
11
- it "responds to #title_translations" do
12
- expect(subject).to respond_to :title_translations
13
- end
14
- end
15
-
16
- it "responds to #description" do
17
- expect(subject).to respond_to :title
18
- end
19
-
20
- end