kinescope-rb 0.2.1 → 0.4.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.
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