kinescope-rb 0.2.0 → 0.3.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: '06856454a6b7a8536b3774baa2a116b153115e42121bb5f455dd5440b913b76d'
4
- data.tar.gz: a6abebe3a3b371727f0fe1a0426407eea20428ad32383fcf1848afac321f70c0
3
+ metadata.gz: c80542490674bdbed7565a4dc3c55df17afd5036ca49703c2343ade567b5e425
4
+ data.tar.gz: 8851aeb48c8b13e1ba4637def2c70a8697ccc64568fca2e2dbed3e65f91adb3d
5
5
  SHA512:
6
- metadata.gz: 3024a4b3a8f8ec109cb58b42fbed6a99931ad0585daf9c1d408cc9c6de1fae5bb3ff81e4aae0b0a051746d95cf5ebefee29f5a759ee8cb413c6cb2267d797adc
7
- data.tar.gz: 3c59d127f7fd3cd39261d71a764c936ac32148111f71f415624be13f5b1f02e8856e46ee6a451c002ff26ea184e114b2026d01afd4773c17ece631bf64d5e877
6
+ metadata.gz: bb6f8f6f0cf878ce3bd39a02a97a2b1680b712c9acef707dddaa24f2941c828a6a036cb64bd786a6e17a821881cf96935a1f3829f7d633ccda043b98ecae45c5
7
+ data.tar.gz: '09c874925c570fe6109b584813a940fbc00bffd54b32456290a0355270a0c1b493ef5b1296d5ced91cd7467ef1ad6981695ec2ceaec37669eace1a3df4359adc'
@@ -29,6 +29,7 @@ module Kinescope
29
29
  def self.resources
30
30
  {
31
31
  videos: VideoResource,
32
+ drm: DRMResource
32
33
  }
33
34
  end
34
35
 
@@ -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
@@ -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
@@ -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.0'.freeze
4
+ VERSION = '0.3.0'.freeze
5
5
  end
data/lib/kinescope.rb CHANGED
@@ -26,4 +26,13 @@ module Kinescope
26
26
  autoload :Pagination, 'kinescope/models/meta'
27
27
  autoload :MetaMapping, 'kinescope/mappings/meta_mapping'
28
28
  autoload :PaginationResource, 'kinescope/pagination_resource'
29
+
30
+ # Errors
31
+ autoload :ErrorHandler, 'kinescope/error_handler'
32
+ Error = Class.new(StandardError)
33
+ AccessDeniedError = Class.new(Kinescope::Error)
34
+ BadRequestError = Class.new(Kinescope::Error)
35
+ NotFoundError = Class.new(Kinescope::Error)
36
+ PaymentRequired = Class.new(Kinescope::Error)
37
+ UnauthorizedError = Class.new(Kinescope::Error)
29
38
  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.0
4
+ version: 0.3.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-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -155,6 +155,7 @@ 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
160
161
  - lib/kinescope/mappings/video_mapping.rb