naranya_ecm-sdk 0.0.42 → 0.0.43
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/.gitignore +2 -1
- data/.rspec +3 -0
- data/Gemfile +1 -2
- data/lib/aasm/persistence/rest_persistence.rb +11 -6
- data/lib/naranya_ecm-sdk.rb +4 -65
- data/lib/naranya_ecm-sdk/version.rb +1 -1
- data/lib/naranya_ecm/models/media_resource.rb +1 -1
- data/lib/naranya_ecm/models/notification.rb +2 -2
- data/lib/naranya_ecm/rest/errors.rb +16 -3
- data/lib/naranya_ecm/rest/finder_methods.rb +4 -4
- data/lib/naranya_ecm/rest/model.rb +87 -19
- data/lib/naranya_ecm/rest/persistence.rb +234 -46
- data/lib/naranya_ecm/rest/relation.rb +15 -5
- data/lib/naranya_ecm/search/results.rb +19 -17
- data/lib/ncontent-sdk-testing.rb +13 -0
- data/lib/ncontent-sdk.rb +85 -0
- data/lib/ncontent/sdk/config.rb +75 -0
- data/lib/ncontent/sdk/faraday_middleware.rb +4 -0
- data/lib/ncontent/sdk/faraday_middleware/required_response_format.rb +14 -0
- data/lib/ncontent/sdk/faraday_middleware/response_parser.rb +35 -0
- data/lib/ncontent/sdk/faraday_middleware/rest_api_call_benchmark.rb +49 -0
- data/lib/ncontent/sdk/railtie.rb +59 -0
- data/lib/ncontent/sdk/rest_client.rb +131 -0
- data/lib/ncontent/sdk/testing/server_mock.rb +316 -0
- data/naranya_ecm-sdk.gemspec +24 -10
- metadata +85 -68
- data/lib/naranya_ecm/rest/client.rb +0 -92
- data/spec/models/category_spec.rb +0 -16
- data/spec/models/content_spec.rb +0 -20
- data/spec/models/content_version_spec.rb +0 -7
- data/spec/models/download_authorization.rb +0 -7
- data/spec/models/media_spec.rb +0 -7
- data/spec/models/module_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -47
- 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.
|
4
|
+
version: 0.0.43
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Quintanilla
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
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:
|
54
|
+
name: oauth2
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- -
|
57
|
+
- - ~>
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '0
|
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
|
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.
|
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.
|
176
|
+
version: '3.2'
|
169
177
|
- !ruby/object:Gem::Dependency
|
170
|
-
name:
|
178
|
+
name: sinatra
|
171
179
|
requirement: !ruby/object:Gem::Requirement
|
172
180
|
requirements:
|
173
|
-
- -
|
181
|
+
- - ~>
|
174
182
|
- !ruby/object:Gem::Version
|
175
|
-
version: '
|
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: '
|
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
|
-
-
|
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.
|
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
|
data/spec/models/content_spec.rb
DELETED
@@ -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
|