kinescope-rb 0.2.1 → 0.4.0

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: c60b46f4d7244d38af5ed28c9a98b1dbd24c48f904d7a054e71472600f34d853
4
- data.tar.gz: 2170d47c21410faeb03d8a14e6b533cc56d307962f684e87b9d35cb06d90d64b
3
+ metadata.gz: 7ca2200dd8e0c8e7b7d716091e3002b817c4cf22f8d67d807bb84a476d0eaec7
4
+ data.tar.gz: a0962262b7774b9636ddf34861e216e279bfb2a48986d2ffd0a5bd7fe17b4ce1
5
5
  SHA512:
6
- metadata.gz: e2cbfff732ef0885da28fe9f884b42f2f0aeb7a4242b93773f21586f6352f93c7e6b2e53c2f040614f374d7058b4721fbe35daab545d176999a33aee98e824ca
7
- data.tar.gz: 262f7e3649cb9adc7ae865f118f1910dea8b04dd65c42c4deec4bce78c73af466bf3f04b64ee8d988b42a0a3b544891c3acfd75890b9747910a41fd05dc92743
6
+ metadata.gz: 6e38f2a47ff521f17daf1f6cc3e24a901c2cd33a50ad7f1d217bfceb514a003140e5e770f59fb2719de7d5fbb291d085126c7b17c0dd2eef68c7c08d515e4c0b
7
+ data.tar.gz: d5b285b0faa5826669710f4c6a1086f2a66e37c0d1930842b748edf23f1960cf8f14c6fc2e9be32ab37efab0b6921b2c3e973aa1f30f0faae7e6a0ff0ae32cd5
@@ -28,8 +28,9 @@ module Kinescope
28
28
 
29
29
  def self.resources
30
30
  {
31
+ drm: DRMResource,
32
+ projects: ProjectResource,
31
33
  videos: VideoResource,
32
- drm: DRMResource
33
34
  }
34
35
  end
35
36
 
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kinescope
4
+ module ErrorHandler
5
+
6
+ def self.included(base)
7
+ base.send(:resources) do
8
+ default_handler do |response|
9
+ case response.status
10
+ when 200..299
11
+ next
12
+ when 400
13
+ raise Kinescope::BadRequestError.new("#{response.status}: #{response.body}")
14
+ when 401
15
+ raise Kinescope::UnauthorizedError.new("#{response.status}: #{response.body}")
16
+ when 402
17
+ raise Kinescope::PaymentRequired.new("#{response.status}: #{response.body}")
18
+ when 403
19
+ raise Kinescope::AccessDeniedError.new("#{response.status}: #{response.body}")
20
+ when 404
21
+ raise Kinescope::NotFoundError.new("#{response.status}: #{response.body}")
22
+ else
23
+ raise Kinescope::Error.new("#{response.status}: #{response.body}")
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kinescope
4
+ class ProjectMapping
5
+ include Kartograph::DSL
6
+
7
+ kartograph do
8
+ mapping Project
9
+ root_key plural: 'data', singular: 'data', scopes: [:read]
10
+
11
+ property :id, scopes: [:read]
12
+ property :name, scopes: [:read]
13
+ property :privacy_type, scopes: [:read]
14
+ property :privacy_domains, scopes: [:read]
15
+ property :player_id, scopes: [:read]
16
+ property :favorite, scopes: [:read]
17
+ property :size, scopes: [:read]
18
+ property :items_count, scopes: [:read]
19
+ property :created_at, scopes: [:read]
20
+ property :updated_at, scopes: [:read]
21
+ property :encrypted, scopes: [:read]
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kinescope
4
+ class Project < BaseModel
5
+ attribute :id
6
+ attribute :name
7
+ attribute :privacy_type
8
+ attribute :privacy_domains
9
+ attribute :player_id
10
+ attribute :favorite
11
+ attribute :size
12
+ attribute :items_count
13
+ attribute :created_at
14
+ attribute :updated_at
15
+ attribute :encrypted
16
+ end
17
+ end
@@ -2,17 +2,19 @@
2
2
 
3
3
  module Kinescope
4
4
  class DRMResource < ResourceKit::Resource
5
+ include ErrorHandler
6
+
5
7
  resources do
6
- action :show, 'GET /v1/drm/auth' do
8
+ action :find, 'GET /v1/drm/auth/:project_id' do
7
9
  handler(200) { |response| DRMMapping.extract_single(response.body, :read) }
8
10
  end
9
11
 
10
- action :update, 'PUT /v1/drm/auth' do
12
+ action :update, 'PUT /v1/drm/auth/:project_id' do
11
13
  body { |object| DRMMapping.representation_for(:update, object) }
12
14
  handler(200) { |response| DRMMapping.extract_single(response.body, :read) }
13
15
  end
14
16
 
15
- action :delete, 'DELETE /v1/drm/auth' do
17
+ action :delete, 'DELETE /v1/drm/auth/:project_id' do
16
18
  handler(200) { true }
17
19
  end
18
20
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kinescope
4
+ class ProjectResource < ResourceKit::Resource
5
+ include ErrorHandler
6
+
7
+ resources do
8
+ action :find, 'GET /v1/projects/:project_id' do
9
+ handler(200) { |response| ProjectMapping.extract_single(response.body, :read) }
10
+ end
11
+ end
12
+ end
13
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Kinescope
4
4
  class VideoResource < ResourceKit::Resource
5
- # include ErrorHandler
5
+ include ErrorHandler
6
6
 
7
7
  resources do
8
8
  action :all, 'GET /v1/videos' do
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kinescope
4
- VERSION = '0.2.1'.freeze
4
+ VERSION = '0.4.0'.freeze
5
5
  end
data/lib/kinescope.rb CHANGED
@@ -10,14 +10,17 @@ module Kinescope
10
10
  # Models
11
11
  autoload :BaseModel, 'kinescope/models/base_model'
12
12
  autoload :DRM, 'kinescope/models/drm'
13
+ autoload :Project, 'kinescope/models/project'
13
14
  autoload :Video, 'kinescope/models/video'
14
15
 
15
16
  # Mappings
16
17
  autoload :DRMMapping, 'kinescope/mappings/drm_mapping'
18
+ autoload :ProjectMapping, 'kinescope/mappings/project_mapping'
17
19
  autoload :VideoMapping, 'kinescope/mappings/video_mapping'
18
20
 
19
21
  # Resources
20
22
  autoload :DRMResource, 'kinescope/resources/drm_resource'
23
+ autoload :ProjectResource, 'kinescope/resources/project_resource'
21
24
  autoload :VideoResource, 'kinescope/resources/video_resource'
22
25
 
23
26
  # Meta
@@ -26,4 +29,13 @@ module Kinescope
26
29
  autoload :Pagination, 'kinescope/models/meta'
27
30
  autoload :MetaMapping, 'kinescope/mappings/meta_mapping'
28
31
  autoload :PaginationResource, 'kinescope/pagination_resource'
32
+
33
+ # Errors
34
+ autoload :ErrorHandler, 'kinescope/error_handler'
35
+ Error = Class.new(StandardError)
36
+ AccessDeniedError = Class.new(Kinescope::Error)
37
+ BadRequestError = Class.new(Kinescope::Error)
38
+ NotFoundError = Class.new(Kinescope::Error)
39
+ PaymentRequired = Class.new(Kinescope::Error)
40
+ UnauthorizedError = Class.new(Kinescope::Error)
29
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kinescope-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - droff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-23 00:00:00.000000000 Z
11
+ date: 2023-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -155,15 +155,19 @@ files:
155
155
  - kinescope-rb.gemspec
156
156
  - lib/kinescope.rb
157
157
  - lib/kinescope/client.rb
158
+ - lib/kinescope/error_handler.rb
158
159
  - lib/kinescope/mappings/drm_mapping.rb
159
160
  - lib/kinescope/mappings/meta_mapping.rb
161
+ - lib/kinescope/mappings/project_mapping.rb
160
162
  - lib/kinescope/mappings/video_mapping.rb
161
163
  - lib/kinescope/models/base_model.rb
162
164
  - lib/kinescope/models/drm.rb
163
165
  - lib/kinescope/models/meta.rb
166
+ - lib/kinescope/models/project.rb
164
167
  - lib/kinescope/models/video.rb
165
168
  - lib/kinescope/pagination_resource.rb
166
169
  - lib/kinescope/resources/drm_resource.rb
170
+ - lib/kinescope/resources/project_resource.rb
167
171
  - lib/kinescope/resources/video_resource.rb
168
172
  - lib/kinescope/version.rb
169
173
  homepage: https://github.com/droff/kinescope-rb