ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.526.6

This commit is contained in:
speakeasybot
2025-03-31 17:53:03 +00:00
parent 2ed1ed9148
commit 0781d394a5
37 changed files with 5387 additions and 666 deletions

View File

@@ -1,3 +1,6 @@
plugins:
- rubocop-minitest
AllCops: AllCops:
Exclude: Exclude:
- Rakefile - Rakefile

View File

@@ -3,17 +3,17 @@ id: aa9449e7-c19d-411d-b8e2-f9c5fe982f6f
management: management:
docChecksum: 68de03e6e877c4fc50ebfdd47bb117ac docChecksum: 68de03e6e877c4fc50ebfdd47bb117ac
docVersion: 0.0.3 docVersion: 0.0.3
speakeasyVersion: 1.513.4 speakeasyVersion: 1.526.6
generationVersion: 2.545.4 generationVersion: 2.563.1
releaseVersion: 0.7.7 releaseVersion: 0.8.0
configChecksum: 8d77b95580838252b22ddb9bb7d067a0 configChecksum: 178358599fd9be85132833f6e1c7adc7
repoURL: https://github.com/LukeHagar/plexruby.git repoURL: https://github.com/LukeHagar/plexruby.git
repoSubDirectory: . repoSubDirectory: .
installationURL: https://github.com/LukeHagar/plexruby installationURL: https://github.com/LukeHagar/plexruby
published: true published: true
features: features:
ruby: ruby:
core: 3.5.4 core: 3.6.0
deprecations: 2.81.2 deprecations: 2.81.2
enums: 2.81.1 enums: 2.81.1
flattening: 2.81.1 flattening: 2.81.1
@@ -1821,6 +1821,8 @@ generatedFiles:
- lib/plex_ruby_sdk/playlists.rb - lib/plex_ruby_sdk/playlists.rb
- lib/plex_ruby_sdk/plex.rb - lib/plex_ruby_sdk/plex.rb
- lib/plex_ruby_sdk/plex_api.rb - lib/plex_ruby_sdk/plex_api.rb
- lib/plex_ruby_sdk/sdk_hooks/hooks.rb
- lib/plex_ruby_sdk/sdk_hooks/types.rb
- lib/plex_ruby_sdk/sdkconfiguration.rb - lib/plex_ruby_sdk/sdkconfiguration.rb
- lib/plex_ruby_sdk/search.rb - lib/plex_ruby_sdk/search.rb
- lib/plex_ruby_sdk/server.rb - lib/plex_ruby_sdk/server.rb
@@ -1830,6 +1832,7 @@ generatedFiles:
- lib/plex_ruby_sdk/statistics.rb - lib/plex_ruby_sdk/statistics.rb
- lib/plex_ruby_sdk/updater.rb - lib/plex_ruby_sdk/updater.rb
- lib/plex_ruby_sdk/users.rb - lib/plex_ruby_sdk/users.rb
- lib/plex_ruby_sdk/utils/retries.rb
- lib/plex_ruby_sdk/utils/utils.rb - lib/plex_ruby_sdk/utils/utils.rb
- lib/plex_ruby_sdk/video.rb - lib/plex_ruby_sdk/video.rb
- lib/plex_ruby_sdk/watchlist.rb - lib/plex_ruby_sdk/watchlist.rb
@@ -1844,6 +1847,7 @@ generatedFiles:
- sorbet/rbi/gems/erubi@1.12.0.rbi - sorbet/rbi/gems/erubi@1.12.0.rbi
- sorbet/rbi/gems/faraday-multipart@1.0.4.rbi - sorbet/rbi/gems/faraday-multipart@1.0.4.rbi
- sorbet/rbi/gems/faraday-net_http@3.0.2.rbi - sorbet/rbi/gems/faraday-net_http@3.0.2.rbi
- sorbet/rbi/gems/faraday-retry@2.2.1.rbi
- sorbet/rbi/gems/faraday@2.7.11.rbi - sorbet/rbi/gems/faraday@2.7.11.rbi
- sorbet/rbi/gems/json@2.6.3.rbi - sorbet/rbi/gems/json@2.6.3.rbi
- sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi - sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi

View File

@@ -15,7 +15,10 @@ generation:
oAuth2ClientCredentialsEnabled: false oAuth2ClientCredentialsEnabled: false
oAuth2PasswordEnabled: false oAuth2PasswordEnabled: false
ruby: ruby:
version: 0.7.7 version: 0.8.0
additionalDependencies:
development: {}
runtime: {}
author: LukeHagar author: LukeHagar
description: Ruby Client SDK Generated by Speakeasy description: Ruby Client SDK Generated by Speakeasy
flattenGlobalSecurity: false flattenGlobalSecurity: false

View File

@@ -1,4 +1,4 @@
speakeasyVersion: 1.513.4 speakeasyVersion: 1.526.6
sources: sources:
my-source: my-source:
sourceNamespace: my-source sourceNamespace: my-source
@@ -9,19 +9,19 @@ sources:
- main - main
plexapi: plexapi:
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 sourceRevisionDigest: sha256:cffb18feaa0523b300655a6f0073caad99133b143f5a420fddbb1e1efe47bcaf
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351
tags: tags:
- latest - latest
- speakeasy-sdk-regen-1741565240 - speakeasy-sdk-regen-1743443509
targets: targets:
plexruby: plexruby:
source: plexapi source: plexapi
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 sourceRevisionDigest: sha256:cffb18feaa0523b300655a6f0073caad99133b143f5a420fddbb1e1efe47bcaf
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351
codeSamplesNamespace: code-samples-ruby-plexruby codeSamplesNamespace: code-samples-ruby-plexruby
codeSamplesRevisionDigest: sha256:9b35ca5755fbeff5addaa5826eaf72ccdd02eff16f325778789aff2fce0136c3 codeSamplesRevisionDigest: sha256:094430f15b6dd5749abddab15c1513dff3482821fe0e7020c39129b9d2d092a6
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0
speakeasyVersion: latest speakeasyVersion: latest
@@ -40,3 +40,5 @@ workflow:
output: codeSamples.yaml output: codeSamples.yaml
registry: registry:
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-ruby-plexruby location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-ruby-plexruby
labelOverride:
fixedValue: PlexRuby

View File

@@ -12,8 +12,8 @@ targets:
rubygems: rubygems:
token: $rubygems_auth_token token: $rubygems_auth_token
codeSamples: codeSamples:
labelOverride:
fixedValue: PlexRuby
output: codeSamples.yaml output: codeSamples.yaml
registry: registry:
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-ruby-plexruby location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-ruby-plexruby
labelOverride:
fixedValue: PlexRuby

View File

@@ -1,9 +1,10 @@
PATH PATH
remote: . remote: .
specs: specs:
plex_ruby_sdk (0.7.7) plex_ruby_sdk (0.8.0)
faraday faraday
faraday-multipart faraday-multipart
faraday-retry (~> 2.2.1)
rack rack
rake rake
sorbet-runtime sorbet-runtime
@@ -13,51 +14,57 @@ GEM
specs: specs:
ast (2.4.2) ast (2.4.2)
erubi (1.13.0) erubi (1.13.0)
faraday (2.12.1) faraday (2.12.2)
faraday-net_http (>= 2.0, < 3.5) faraday-net_http (>= 2.0, < 3.5)
json json
logger logger
faraday-multipart (1.0.4) faraday-multipart (1.1.0)
multipart-post (~> 2) multipart-post (~> 2.0)
faraday-net_http (3.4.0) faraday-net_http (3.4.0)
net-http (>= 0.5.0) net-http (>= 0.5.0)
faraday-retry (2.2.1)
faraday (~> 2.0)
json (2.8.2) json (2.8.2)
language_server-protocol (3.17.0.3) language_server-protocol (3.17.0.4)
logger (1.6.1) lint_roller (1.1.0)
logger (1.6.6)
minitest (5.25.2) minitest (5.25.2)
minitest-focus (1.4.0) minitest-focus (1.4.0)
minitest (>= 4, < 6) minitest (>= 4, < 6)
multipart-post (2.4.1) multipart-post (2.4.1)
net-http (0.5.0) net-http (0.6.0)
uri uri
netrc (0.11.0) netrc (0.11.0)
parallel (1.26.3) parallel (1.26.3)
parser (3.3.6.0) parser (3.3.7.1)
ast (~> 2.4.1) ast (~> 2.4.1)
racc racc
prism (0.27.0) prism (0.27.0)
racc (1.8.1) racc (1.8.1)
rack (3.1.8) rack (3.1.11)
rainbow (3.1.1) rainbow (3.1.1)
rake (13.2.1) rake (13.2.1)
rbi (0.1.12) rbi (0.1.12)
prism (>= 0.18.0, < 0.28) prism (>= 0.18.0, < 0.28)
sorbet-runtime (>= 0.5.9204) sorbet-runtime (>= 0.5.9204)
regexp_parser (2.9.2) regexp_parser (2.10.0)
rexml (3.3.9) rubocop (1.73.2)
rubocop (1.60.2)
json (~> 2.3) json (~> 2.3)
language_server-protocol (>= 3.17.0) language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 3.3.0.2) parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0) regexp_parser (>= 2.9.3, < 3.0)
rexml (>= 3.2.5, < 4.0) rubocop-ast (>= 1.38.0, < 2.0)
rubocop-ast (>= 1.30.0, < 2.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0) unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.36.1) rubocop-ast (1.38.1)
parser (>= 3.3.1.0) parser (>= 3.3.1.0)
rubocop-minitest (0.37.1)
lint_roller (~> 1.1)
rubocop (>= 1.72.1, < 2.0)
rubocop-ast (>= 1.38.0, < 2.0)
ruby-progressbar (1.13.0) ruby-progressbar (1.13.0)
sorbet (0.5.11668) sorbet (0.5.11668)
sorbet-static (= 0.5.11668) sorbet-static (= 0.5.11668)
@@ -83,8 +90,10 @@ GEM
thor (>= 1.2.0) thor (>= 1.2.0)
yard-sorbet yard-sorbet
thor (1.3.2) thor (1.3.2)
unicode-display_width (2.6.0) unicode-display_width (3.1.4)
uri (1.0.2) unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
uri (1.0.3)
yard (0.9.37) yard (0.9.37)
yard-sorbet (0.8.1) yard-sorbet (0.8.1)
sorbet-runtime (>= 0.5) sorbet-runtime (>= 0.5)
@@ -100,7 +109,8 @@ DEPENDENCIES
minitest minitest
minitest-focus minitest-focus
plex_ruby_sdk! plex_ruby_sdk!
rubocop (~> 1.60.2) rubocop (~> 1.73.2)
rubocop-minitest (~> 0.37.1)
sorbet sorbet
tapioca tapioca

View File

@@ -747,3 +747,13 @@ Based on:
- [ruby v0.7.7] . - [ruby v0.7.7] .
### Releases ### Releases
- [Ruby Gems v0.7.7] https://rubygems.org/gems/plex_ruby_sdk/versions/0.7.7 - . - [Ruby Gems v0.7.7] https://rubygems.org/gems/plex_ruby_sdk/versions/0.7.7 - .
## 2025-03-31 17:51:33
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.526.6 (2.563.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [ruby v0.8.0] .
### Releases
- [Ruby Gems v0.8.0] https://rubygems.org/gems/plex_ruby_sdk/versions/0.8.0 - .

View File

@@ -7,7 +7,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getServerCapabilities label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -26,7 +26,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getServerPreferences label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -45,7 +45,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: updatePlayProgress label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -64,7 +64,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: markPlayed label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -83,7 +83,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getTimeline label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -115,7 +115,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: markUnplayed label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -134,7 +134,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getServerActivities label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -153,7 +153,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: cancelServerActivities label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -172,7 +172,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: stopAllTasks label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -191,7 +191,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getButlerTasks label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -210,7 +210,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: startAllTasks label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -229,7 +229,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: stopTask label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -248,7 +248,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: startTask label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -267,7 +267,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getAvailableClients label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -286,7 +286,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getCompanionsData label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -305,7 +305,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getDevices label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -324,7 +324,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getUserFriends label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -343,7 +343,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getGeoData label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -358,7 +358,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getHomeData label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -377,7 +377,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getGlobalHubs label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -396,7 +396,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-recently-added label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -407,7 +407,7 @@ actions:
) )
req = ::PlexRubySDK::Operations::GetRecentlyAddedRequest.new( req = ::PlexRubySDK::Operations::GetRecentlyAddedRequest.new(
content_directory_id: 470161, content_directory_id: 470_161,
section_id: 2, section_id: 2,
type: ::PlexRubySDK::Operations::Type::TV_SHOW, type: ::PlexRubySDK::Operations::Type::TV_SHOW,
include_meta: ::PlexRubySDK::Operations::IncludeMeta::ENABLE, include_meta: ::PlexRubySDK::Operations::IncludeMeta::ENABLE,
@@ -424,7 +424,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: performSearch label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -443,7 +443,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: performVoiceSearch label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -462,7 +462,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getLibraryHubs label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -481,7 +481,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-server-identity label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -496,7 +496,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getTopWatchedContent label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -515,7 +515,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getFileHash label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -534,7 +534,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-media-meta-data label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -570,7 +570,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-banner-image label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -598,7 +598,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getMetadataChildren label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -617,7 +617,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-thumb-image label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -645,7 +645,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-recently-added-library label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -687,7 +687,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-search-all-libraries label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -716,7 +716,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-all-libraries label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -735,7 +735,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-watch-list label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -761,7 +761,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: deleteLibrary label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -780,7 +780,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-library-details label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -799,7 +799,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-actors-library label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -818,7 +818,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-all-media-library label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -849,7 +849,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-countries-library label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -868,7 +868,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-genres-library label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -887,7 +887,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-refresh-library-metadata label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -906,7 +906,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-search-library label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -925,7 +925,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-library-items label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -954,7 +954,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: logLine label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -973,7 +973,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: logMultiLine label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -996,7 +996,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: enablePaperTrail label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1015,7 +1015,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-media-providers label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1034,7 +1034,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getMyPlexAccount label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1053,7 +1053,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getResizedPhoto label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1066,7 +1066,7 @@ actions:
req = ::PlexRubySDK::Operations::GetResizedPhotoRequest.new( req = ::PlexRubySDK::Operations::GetResizedPhotoRequest.new(
width: 110.0, width: 110.0,
height: 165.0, height: 165.0,
opacity: 643869, opacity: 643_869,
blur: 0.0, blur: 0.0,
min_size: ::PlexRubySDK::Operations::MinSize::ONE, min_size: ::PlexRubySDK::Operations::MinSize::ONE,
upscale: ::PlexRubySDK::Operations::Upscale::ONE, upscale: ::PlexRubySDK::Operations::Upscale::ONE,
@@ -1082,7 +1082,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getPin label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1105,14 +1105,14 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getTokenByPinId label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
s = ::PlexRubySDK::PlexAPI.new s = ::PlexRubySDK::PlexAPI.new
req = ::PlexRubySDK::Operations::GetTokenByPinIdRequest.new( req = ::PlexRubySDK::Operations::GetTokenByPinIdRequest.new(
pin_id: 408895, pin_id: 408_895,
client_id: "3381b62b-9ab7-4e37-827b-203e9809eb58", client_id: "3381b62b-9ab7-4e37-827b-203e9809eb58",
client_name: "Plex for Roku", client_name: "Plex for Roku",
device_nickname: "Roku 3", device_nickname: "Roku 3",
@@ -1129,7 +1129,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getPlaylists label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1148,7 +1148,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: createPlaylist label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1174,7 +1174,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: uploadPlaylist label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1193,7 +1193,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: deletePlaylist label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1212,7 +1212,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getPlaylist label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1231,7 +1231,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: updatePlaylist label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1250,7 +1250,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: clearPlaylistContents label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1269,7 +1269,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getPlaylistContents label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1288,7 +1288,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: addPlaylistContents label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1307,7 +1307,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-server-resources label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1326,7 +1326,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getSearchResults label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1345,7 +1345,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getSourceConnectionInformation label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1364,7 +1364,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getTransientToken label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1383,7 +1383,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getServerList label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1402,7 +1402,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getBandwidthStatistics label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1421,7 +1421,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getStatistics label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1440,7 +1440,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getResourcesStatistics label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1459,7 +1459,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getSessions label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1478,7 +1478,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getSessionHistory label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1497,7 +1497,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getTranscodeSessions label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1516,7 +1516,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: stopTranscodeSession label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1535,7 +1535,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: applyUpdates label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1554,7 +1554,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: checkForUpdates label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1573,7 +1573,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getUpdateStatus label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1592,7 +1592,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: getTokenDetails label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1611,7 +1611,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: get-users label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1642,7 +1642,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: post-users-sign-in-data label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'
@@ -1670,7 +1670,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: ruby - lang: ruby
label: startUniversalTranscode label: PlexRuby
source: |- source: |-
require 'plex_ruby_sdk' require 'plex_ruby_sdk'

View File

@@ -65,7 +65,7 @@ s = ::PlexRubySDK::PlexAPI.new(
) )
req = ::PlexRubySDK::Operations::GetRecentlyAddedRequest.new( req = ::PlexRubySDK::Operations::GetRecentlyAddedRequest.new(
content_directory_id: 470161, content_directory_id: 470_161,
section_id: 2, section_id: 2,
type: ::PlexRubySDK::Operations::Type::TV_SHOW, type: ::PlexRubySDK::Operations::Type::TV_SHOW,
include_meta: ::PlexRubySDK::Operations::IncludeMeta::ENABLE, include_meta: ::PlexRubySDK::Operations::IncludeMeta::ENABLE,

View File

@@ -237,7 +237,7 @@ require 'plex_ruby_sdk'
s = ::PlexRubySDK::PlexAPI.new s = ::PlexRubySDK::PlexAPI.new
req = ::PlexRubySDK::Operations::GetTokenByPinIdRequest.new( req = ::PlexRubySDK::Operations::GetTokenByPinIdRequest.new(
pin_id: 408895, pin_id: 408_895,
client_id: "3381b62b-9ab7-4e37-827b-203e9809eb58", client_id: "3381b62b-9ab7-4e37-827b-203e9809eb58",
client_name: "Plex for Roku", client_name: "Plex for Roku",
device_nickname: "Roku 3", device_nickname: "Roku 3",

View File

@@ -207,7 +207,7 @@ s = ::PlexRubySDK::PlexAPI.new(
req = ::PlexRubySDK::Operations::GetResizedPhotoRequest.new( req = ::PlexRubySDK::Operations::GetResizedPhotoRequest.new(
width: 110.0, width: 110.0,
height: 165.0, height: 165.0,
opacity: 643869, opacity: 643_869,
blur: 0.0, blur: 0.0,
min_size: ::PlexRubySDK::Operations::MinSize::ONE, min_size: ::PlexRubySDK::Operations::MinSize::ONE,
upscale: ::PlexRubySDK::Operations::Upscale::ONE, upscale: ::PlexRubySDK::Operations::Upscale::ONE,

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -26,8 +29,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetServerActivitiesResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetServerActivitiesResponse) }
def get_server_activities def get_server_activities(timeout_ms = nil)
# get_server_activities - Get Server Activities # get_server_activities - Get Server Activities
# Get Server Activities # Get Server Activities
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -37,10 +40,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getServerActivities',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -69,8 +122,8 @@ module PlexRubySDK
end end
sig { params(activity_uuid: ::String).returns(::PlexRubySDK::Operations::CancelServerActivitiesResponse) } sig { params(activity_uuid: ::String, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::CancelServerActivitiesResponse) }
def cancel_server_activities(activity_uuid) def cancel_server_activities(activity_uuid, timeout_ms = nil)
# cancel_server_activities - Cancel Server Activities # cancel_server_activities - Cancel Server Activities
# Cancel Server Activities # Cancel Server Activities
request = ::PlexRubySDK::Operations::CancelServerActivitiesRequest.new( request = ::PlexRubySDK::Operations::CancelServerActivitiesRequest.new(
@@ -89,10 +142,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.delete(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'cancelServerActivities',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.delete(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -30,8 +33,8 @@ module PlexRubySDK
end end
sig { params(type: ::PlexRubySDK::Operations::GetTransientTokenQueryParamType, scope: ::PlexRubySDK::Operations::Scope).returns(::PlexRubySDK::Operations::GetTransientTokenResponse) } sig { params(type: ::PlexRubySDK::Operations::GetTransientTokenQueryParamType, scope: ::PlexRubySDK::Operations::Scope, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetTransientTokenResponse) }
def get_transient_token(type, scope) def get_transient_token(type, scope, timeout_ms = nil)
# get_transient_token - Get a Transient Token # get_transient_token - Get a Transient Token
# This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted. # This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted.
# #
@@ -48,11 +51,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getTransientToken',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -77,8 +130,8 @@ module PlexRubySDK
end end
sig { params(source: ::String).returns(::PlexRubySDK::Operations::GetSourceConnectionInformationResponse) } sig { params(source: ::String, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetSourceConnectionInformationResponse) }
def get_source_connection_information(source) def get_source_connection_information(source, timeout_ms = nil)
# get_source_connection_information - Get Source Connection Information # get_source_connection_information - Get Source Connection Information
# If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token. # If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token.
# Note: requires Plex Media Server >= 1.15.4. # Note: requires Plex Media Server >= 1.15.4.
@@ -95,11 +148,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getSourceConnectionInformation',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -124,8 +227,8 @@ module PlexRubySDK
end end
sig { params(server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetTokenDetailsResponse) } sig { params(server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetTokenDetailsResponse) }
def get_token_details(server_url = nil) def get_token_details(server_url = nil, timeout_ms = nil)
# get_token_details - Get Token Details # get_token_details - Get Token Details
# Get the User data from the provided X-Plex-Token # Get the User data from the provided X-Plex-Token
base_url = Utils.template_url(GET_TOKEN_DETAILS_SERVERS[0], { base_url = Utils.template_url(GET_TOKEN_DETAILS_SERVERS[0], {
@@ -136,10 +239,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getTokenDetails',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -168,8 +321,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataRequest), server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::PostUsersSignInDataResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataRequest), server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::PostUsersSignInDataResponse) }
def post_users_sign_in_data(request, server_url = nil) def post_users_sign_in_data(request, server_url = nil, timeout_ms = nil)
# post_users_sign_in_data - Get User Sign In Data # post_users_sign_in_data - Get User Sign In Data
# Sign in user with username and password and return user data with Plex authentication token # Sign in user with username and password and return user data with Plex authentication token
base_url = Utils.template_url(POST_USERS_SIGN_IN_DATA_SERVERS[0], { base_url = Utils.template_url(POST_USERS_SIGN_IN_DATA_SERVERS[0], {
@@ -179,17 +332,68 @@ module PlexRubySDK
headers = Utils.get_headers(request) headers = Utils.get_headers(request)
req_content_type, data, form = Utils.serialize_request_body(request, :request_body, :form) req_content_type, data, form = Utils.serialize_request_body(request, :request_body, :form)
headers['content-type'] = req_content_type headers['content-type'] = req_content_type
if form
body = Utils.encode_form(form)
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
body = URI.encode_www_form(data)
else
body = data
end
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.post(url) do |req| timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
req.headers = headers timeout ||= @sdk_configuration.timeout
if form
req.body = Utils.encode_form(form) connection = @sdk_configuration.client
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
req.body = URI.encode_www_form(data) hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'post-users-sign-in-data',
security_source: nil
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.post(url) do |req|
req.body = body
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else else
req.body = data r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end end
end end

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetButlerTasksResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetButlerTasksResponse) }
def get_butler_tasks def get_butler_tasks(timeout_ms = nil)
# get_butler_tasks - Get Butler tasks # get_butler_tasks - Get Butler tasks
# Returns a list of butler tasks # Returns a list of butler tasks
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -31,10 +34,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getButlerTasks',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -63,8 +116,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::StartAllTasksResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::StartAllTasksResponse) }
def start_all_tasks def start_all_tasks(timeout_ms = nil)
# start_all_tasks - Start all Butler tasks # start_all_tasks - Start all Butler tasks
# This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria: # This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
# 1. Any tasks not scheduled to run on the current day will be skipped. # 1. Any tasks not scheduled to run on the current day will be skipped.
@@ -79,10 +132,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.post(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'startAllTasks',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.post(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -107,8 +210,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::StopAllTasksResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::StopAllTasksResponse) }
def stop_all_tasks def stop_all_tasks(timeout_ms = nil)
# stop_all_tasks - Stop all Butler tasks # stop_all_tasks - Stop all Butler tasks
# This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue. # This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.
# #
@@ -119,10 +222,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.delete(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'stopAllTasks',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.delete(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -147,8 +300,8 @@ module PlexRubySDK
end end
sig { params(task_name: ::PlexRubySDK::Operations::TaskName).returns(::PlexRubySDK::Operations::StartTaskResponse) } sig { params(task_name: ::PlexRubySDK::Operations::TaskName, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::StartTaskResponse) }
def start_task(task_name) def start_task(task_name, timeout_ms = nil)
# start_task - Start a single Butler task # start_task - Start a single Butler task
# This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria: # This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
# 1. Any tasks not scheduled to run on the current day will be skipped. # 1. Any tasks not scheduled to run on the current day will be skipped.
@@ -172,10 +325,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.post(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'startTask',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.post(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -200,8 +403,8 @@ module PlexRubySDK
end end
sig { params(task_name: ::PlexRubySDK::Operations::PathParamTaskName).returns(::PlexRubySDK::Operations::StopTaskResponse) } sig { params(task_name: ::PlexRubySDK::Operations::PathParamTaskName, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::StopTaskResponse) }
def stop_task(task_name) def stop_task(task_name, timeout_ms = nil)
# stop_task - Stop a single Butler task # stop_task - Stop a single Butler task
# This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint. # This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.
# #
@@ -221,10 +424,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.delete(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'stopTask',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.delete(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { params(count: T.nilable(::Float), only_transient: T.nilable(::PlexRubySDK::Operations::OnlyTransient)).returns(::PlexRubySDK::Operations::GetGlobalHubsResponse) } sig { params(count: T.nilable(::Float), only_transient: T.nilable(::PlexRubySDK::Operations::OnlyTransient), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetGlobalHubsResponse) }
def get_global_hubs(count = nil, only_transient = nil) def get_global_hubs(count = nil, only_transient = nil, timeout_ms = nil)
# get_global_hubs - Get Global Hubs # get_global_hubs - Get Global Hubs
# Get Global Hubs filtered by the parameters provided. # Get Global Hubs filtered by the parameters provided.
request = ::PlexRubySDK::Operations::GetGlobalHubsRequest.new( request = ::PlexRubySDK::Operations::GetGlobalHubsRequest.new(
@@ -37,11 +40,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getGlobalHubs',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -70,8 +123,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetRecentlyAddedRequest)).returns(::PlexRubySDK::Operations::GetRecentlyAddedResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetRecentlyAddedRequest), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetRecentlyAddedResponse) }
def get_recently_added(request) def get_recently_added(request, timeout_ms = nil)
# get_recently_added - Get Recently Added # get_recently_added - Get Recently Added
# This endpoint will return the recently added content. # This endpoint will return the recently added content.
# #
@@ -83,11 +136,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'get-recently-added',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -107,8 +210,8 @@ module PlexRubySDK
end end
sig { params(section_id: ::Float, count: T.nilable(::Float), only_transient: T.nilable(::PlexRubySDK::Operations::QueryParamOnlyTransient)).returns(::PlexRubySDK::Operations::GetLibraryHubsResponse) } sig { params(section_id: ::Float, count: T.nilable(::Float), only_transient: T.nilable(::PlexRubySDK::Operations::QueryParamOnlyTransient), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetLibraryHubsResponse) }
def get_library_hubs(section_id, count = nil, only_transient = nil) def get_library_hubs(section_id, count = nil, only_transient = nil, timeout_ms = nil)
# get_library_hubs - Get library specific hubs # get_library_hubs - Get library specific hubs
# This endpoint will return a list of library specific hubs # This endpoint will return a list of library specific hubs
# #
@@ -131,11 +234,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getLibraryHubs',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { params(level: ::PlexRubySDK::Operations::Level, message: ::String, source: ::String).returns(::PlexRubySDK::Operations::LogLineResponse) } sig { params(level: ::PlexRubySDK::Operations::Level, message: ::String, source: ::String, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::LogLineResponse) }
def log_line(level, message, source) def log_line(level, message, source, timeout_ms = nil)
# log_line - Logging a single line message. # log_line - Logging a single line message.
# This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log. # This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
# #
@@ -39,11 +42,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'logLine',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -68,8 +121,8 @@ module PlexRubySDK
end end
sig { params(request: ::String).returns(::PlexRubySDK::Operations::LogMultiLineResponse) } sig { params(request: ::String, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::LogMultiLineResponse) }
def log_multi_line(request) def log_multi_line(request, timeout_ms = nil)
# log_multi_line - Logging a multi-line message # log_multi_line - Logging a multi-line message
# This endpoint allows for the batch addition of log entries to the main Plex Media Server log. # This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
# It accepts a text/plain request body, where each line represents a distinct log entry. # It accepts a text/plain request body, where each line represents a distinct log entry.
@@ -100,19 +153,71 @@ module PlexRubySDK
req_content_type, data, form = Utils.serialize_request_body(request, :request, :string) req_content_type, data, form = Utils.serialize_request_body(request, :request, :string)
headers['content-type'] = req_content_type headers['content-type'] = req_content_type
raise StandardError, 'request body is required' if data.nil? && form.nil? raise StandardError, 'request body is required' if data.nil? && form.nil?
if form
body = Utils.encode_form(form)
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
body = URI.encode_www_form(data)
else
body = data
end
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.post(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
if form
req.body = Utils.encode_form(form) connection = @sdk_configuration.client
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
req.body = URI.encode_www_form(data) hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'logMultiLine',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.post(url) do |req|
req.body = body
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else else
req.body = data r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end end
end end
@@ -138,8 +243,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::EnablePaperTrailResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::EnablePaperTrailResponse) }
def enable_paper_trail def enable_paper_trail(timeout_ms = nil)
# enable_paper_trail - Enabling Papertrail # enable_paper_trail - Enabling Papertrail
# This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail networked logging site for a period of time. # This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail networked logging site for a period of time.
# #
@@ -150,10 +255,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'enablePaperTrail',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { params(key: ::Float).returns(::PlexRubySDK::Operations::MarkPlayedResponse) } sig { params(key: ::Float, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::MarkPlayedResponse) }
def mark_played(key) def mark_played(key, timeout_ms = nil)
# mark_played - Mark Media Played # mark_played - Mark Media Played
# This will mark the provided media key as Played. # This will mark the provided media key as Played.
request = ::PlexRubySDK::Operations::MarkPlayedRequest.new( request = ::PlexRubySDK::Operations::MarkPlayedRequest.new(
@@ -36,11 +39,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'markPlayed',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -65,8 +118,8 @@ module PlexRubySDK
end end
sig { params(key: ::Float).returns(::PlexRubySDK::Operations::MarkUnplayedResponse) } sig { params(key: ::Float, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::MarkUnplayedResponse) }
def mark_unplayed(key) def mark_unplayed(key, timeout_ms = nil)
# mark_unplayed - Mark Media Unplayed # mark_unplayed - Mark Media Unplayed
# This will mark the provided media key as Unplayed. # This will mark the provided media key as Unplayed.
request = ::PlexRubySDK::Operations::MarkUnplayedRequest.new( request = ::PlexRubySDK::Operations::MarkUnplayedRequest.new(
@@ -81,11 +134,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'markUnplayed',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -110,8 +213,8 @@ module PlexRubySDK
end end
sig { params(key: ::String, time: ::Float, state: ::String).returns(::PlexRubySDK::Operations::UpdatePlayProgressResponse) } sig { params(key: ::String, time: ::Float, state: ::String, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::UpdatePlayProgressResponse) }
def update_play_progress(key, time, state) def update_play_progress(key, time, state, timeout_ms = nil)
# update_play_progress - Update Media Play Progress # update_play_progress - Update Media Play Progress
# This API command can be used to update the play progress of a media item. # This API command can be used to update the play progress of a media item.
# #
@@ -129,11 +232,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.post(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'updatePlayProgress',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.post(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -158,8 +311,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetBannerImageRequest)).returns(::PlexRubySDK::Operations::GetBannerImageResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetBannerImageRequest), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetBannerImageResponse) }
def get_banner_image(request) def get_banner_image(request, timeout_ms = nil)
# get_banner_image - Get Banner Image # get_banner_image - Get Banner Image
# Gets the banner image of the media item # Gets the banner image of the media item
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -175,11 +328,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json;q=1, image/jpeg;q=0' headers['Accept'] = 'application/json;q=1, image/jpeg;q=0'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'get-banner-image',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -206,8 +409,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetThumbImageRequest)).returns(::PlexRubySDK::Operations::GetThumbImageResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetThumbImageRequest), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetThumbImageResponse) }
def get_thumb_image(request) def get_thumb_image(request, timeout_ms = nil)
# get_thumb_image - Get Thumb Image # get_thumb_image - Get Thumb Image
# Gets the thumbnail image of the media item # Gets the thumbnail image of the media item
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -223,11 +426,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json;q=1, image/jpeg;q=0' headers['Accept'] = 'application/json;q=1, image/jpeg;q=0'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'get-thumb-image',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -23,8 +26,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::CreatePlaylistRequest)).returns(::PlexRubySDK::Operations::CreatePlaylistResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::CreatePlaylistRequest), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::CreatePlaylistResponse) }
def create_playlist(request) def create_playlist(request, timeout_ms = nil)
# create_playlist - Create a Playlist # create_playlist - Create a Playlist
# Create a new playlist. By default the playlist is blank. To create a playlist along with a first item, pass: # Create a new playlist. By default the playlist is blank. To create a playlist along with a first item, pass:
# - `uri` - The content URI for what we're playing (e.g. `server://1234/com.plexapp.plugins.library/library/metadata/1`). # - `uri` - The content URI for what we're playing (e.g. `server://1234/com.plexapp.plugins.library/library/metadata/1`).
@@ -38,11 +41,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.post(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'createPlaylist',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.post(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -71,8 +124,8 @@ module PlexRubySDK
end end
sig { params(playlist_type: T.nilable(::PlexRubySDK::Operations::PlaylistType), smart: T.nilable(::PlexRubySDK::Operations::QueryParamSmart)).returns(::PlexRubySDK::Operations::GetPlaylistsResponse) } sig { params(playlist_type: T.nilable(::PlexRubySDK::Operations::PlaylistType), smart: T.nilable(::PlexRubySDK::Operations::QueryParamSmart), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetPlaylistsResponse) }
def get_playlists(playlist_type = nil, smart = nil) def get_playlists(playlist_type = nil, smart = nil, timeout_ms = nil)
# get_playlists - Get All Playlists # get_playlists - Get All Playlists
# Get All Playlists given the specified filters. # Get All Playlists given the specified filters.
request = ::PlexRubySDK::Operations::GetPlaylistsRequest.new( request = ::PlexRubySDK::Operations::GetPlaylistsRequest.new(
@@ -88,11 +141,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getPlaylists',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -121,8 +224,8 @@ module PlexRubySDK
end end
sig { params(playlist_id: ::Float).returns(::PlexRubySDK::Operations::GetPlaylistResponse) } sig { params(playlist_id: ::Float, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetPlaylistResponse) }
def get_playlist(playlist_id) def get_playlist(playlist_id, timeout_ms = nil)
# get_playlist - Retrieve Playlist # get_playlist - Retrieve Playlist
# Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item: # Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item:
# Smart playlist details contain the `content` attribute. This is the content URI for the generator. This can then be parsed by a client to provide smart playlist editing. # Smart playlist details contain the `content` attribute. This is the content URI for the generator. This can then be parsed by a client to provide smart playlist editing.
@@ -143,10 +246,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getPlaylist',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -175,8 +328,8 @@ module PlexRubySDK
end end
sig { params(playlist_id: ::Float).returns(::PlexRubySDK::Operations::DeletePlaylistResponse) } sig { params(playlist_id: ::Float, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::DeletePlaylistResponse) }
def delete_playlist(playlist_id) def delete_playlist(playlist_id, timeout_ms = nil)
# delete_playlist - Deletes a Playlist # delete_playlist - Deletes a Playlist
# This endpoint will delete a playlist # This endpoint will delete a playlist
# #
@@ -196,10 +349,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.delete(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'deletePlaylist',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.delete(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -224,8 +427,8 @@ module PlexRubySDK
end end
sig { params(playlist_id: ::Float, title: T.nilable(::String), summary: T.nilable(::String)).returns(::PlexRubySDK::Operations::UpdatePlaylistResponse) } sig { params(playlist_id: ::Float, title: T.nilable(::String), summary: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::UpdatePlaylistResponse) }
def update_playlist(playlist_id, title = nil, summary = nil) def update_playlist(playlist_id, title = nil, summary = nil, timeout_ms = nil)
# update_playlist - Update a Playlist # update_playlist - Update a Playlist
# From PMS version 1.9.1 clients can also edit playlist metadata using this endpoint as they would via `PUT /library/metadata/{playlistID}` # From PMS version 1.9.1 clients can also edit playlist metadata using this endpoint as they would via `PUT /library/metadata/{playlistID}`
# #
@@ -248,11 +451,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.put(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'updatePlaylist',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.put(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -277,8 +530,8 @@ module PlexRubySDK
end end
sig { params(playlist_id: ::Float, type: ::PlexRubySDK::Operations::GetPlaylistContentsQueryParamType).returns(::PlexRubySDK::Operations::GetPlaylistContentsResponse) } sig { params(playlist_id: ::Float, type: ::PlexRubySDK::Operations::GetPlaylistContentsQueryParamType, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetPlaylistContentsResponse) }
def get_playlist_contents(playlist_id, type) def get_playlist_contents(playlist_id, type, timeout_ms = nil)
# get_playlist_contents - Retrieve Playlist Contents # get_playlist_contents - Retrieve Playlist Contents
# Gets the contents of a playlist. Should be paged by clients via standard mechanisms. # Gets the contents of a playlist. Should be paged by clients via standard mechanisms.
# By default leaves are returned (e.g. episodes, movies). In order to return other types you can use the `type` parameter. # By default leaves are returned (e.g. episodes, movies). In order to return other types you can use the `type` parameter.
@@ -303,11 +556,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getPlaylistContents',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -336,8 +639,8 @@ module PlexRubySDK
end end
sig { params(playlist_id: ::Float).returns(::PlexRubySDK::Operations::ClearPlaylistContentsResponse) } sig { params(playlist_id: ::Float, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::ClearPlaylistContentsResponse) }
def clear_playlist_contents(playlist_id) def clear_playlist_contents(playlist_id, timeout_ms = nil)
# clear_playlist_contents - Delete Playlist Contents # clear_playlist_contents - Delete Playlist Contents
# Clears a playlist, only works with dumb playlists. Returns the playlist. # Clears a playlist, only works with dumb playlists. Returns the playlist.
# #
@@ -357,10 +660,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.delete(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'clearPlaylistContents',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.delete(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -385,8 +738,8 @@ module PlexRubySDK
end end
sig { params(playlist_id: ::Float, uri: ::String, play_queue_id: T.nilable(::Float)).returns(::PlexRubySDK::Operations::AddPlaylistContentsResponse) } sig { params(playlist_id: ::Float, uri: ::String, play_queue_id: T.nilable(::Float), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::AddPlaylistContentsResponse) }
def add_playlist_contents(playlist_id, uri, play_queue_id = nil) def add_playlist_contents(playlist_id, uri, play_queue_id = nil, timeout_ms = nil)
# add_playlist_contents - Adding to a Playlist # add_playlist_contents - Adding to a Playlist
# Adds a generator to a playlist, same parameters as the POST to create. With a dumb playlist, this adds the specified items to the playlist. # Adds a generator to a playlist, same parameters as the POST to create. With a dumb playlist, this adds the specified items to the playlist.
# With a smart playlist, passing a new `uri` parameter replaces the rules for the playlist. Returns the playlist. # With a smart playlist, passing a new `uri` parameter replaces the rules for the playlist. Returns the playlist.
@@ -410,11 +763,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.put(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'addPlaylistContents',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.put(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -443,8 +846,8 @@ module PlexRubySDK
end end
sig { params(path: ::String, force: ::PlexRubySDK::Operations::QueryParamForce, section_id: ::Integer).returns(::PlexRubySDK::Operations::UploadPlaylistResponse) } sig { params(path: ::String, force: ::PlexRubySDK::Operations::QueryParamForce, section_id: ::Integer, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::UploadPlaylistResponse) }
def upload_playlist(path, force, section_id) def upload_playlist(path, force, section_id, timeout_ms = nil)
# upload_playlist - Upload Playlist # upload_playlist - Upload Playlist
# Imports m3u playlists by passing a path on the server to scan for m3u-formatted playlist files, or a path to a single playlist file. # Imports m3u playlists by passing a path on the server to scan for m3u-formatted playlist files, or a path to a single playlist file.
# #
@@ -462,11 +865,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.post(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'uploadPlaylist',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.post(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -50,8 +53,8 @@ module PlexRubySDK
end end
sig { params(server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetCompanionsDataResponse) } sig { params(server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetCompanionsDataResponse) }
def get_companions_data(server_url = nil) def get_companions_data(server_url = nil, timeout_ms = nil)
# get_companions_data - Get Companions Data # get_companions_data - Get Companions Data
# Get Companions Data # Get Companions Data
base_url = Utils.template_url(GET_COMPANIONS_DATA_SERVERS[0], { base_url = Utils.template_url(GET_COMPANIONS_DATA_SERVERS[0], {
@@ -62,10 +65,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getCompanionsData',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -94,8 +147,8 @@ module PlexRubySDK
end end
sig { params(server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetUserFriendsResponse) } sig { params(server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetUserFriendsResponse) }
def get_user_friends(server_url = nil) def get_user_friends(server_url = nil, timeout_ms = nil)
# get_user_friends - Get list of friends of the user logged in # get_user_friends - Get list of friends of the user logged in
# Get friends of provided auth token. # Get friends of provided auth token.
base_url = Utils.template_url(GET_USER_FRIENDS_SERVERS[0], { base_url = Utils.template_url(GET_USER_FRIENDS_SERVERS[0], {
@@ -106,10 +159,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getUserFriends',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -138,8 +241,8 @@ module PlexRubySDK
end end
sig { params(server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetGeoDataResponse) } sig { params(server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetGeoDataResponse) }
def get_geo_data(server_url = nil) def get_geo_data(server_url = nil, timeout_ms = nil)
# get_geo_data - Get Geo Data # get_geo_data - Get Geo Data
# Returns the geolocation and locale data of the caller # Returns the geolocation and locale data of the caller
base_url = Utils.template_url(GET_GEO_DATA_SERVERS[0], { base_url = Utils.template_url(GET_GEO_DATA_SERVERS[0], {
@@ -150,8 +253,57 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
req.headers = headers timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getGeoData',
security_source: nil
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -180,8 +332,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetHomeDataResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetHomeDataResponse) }
def get_home_data def get_home_data(timeout_ms = nil)
# get_home_data - Get Plex Home Data # get_home_data - Get Plex Home Data
# Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status. # Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status.
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -191,10 +343,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getHomeData',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -223,8 +425,8 @@ module PlexRubySDK
end end
sig { params(client_id: ::String, include_https: T.nilable(::PlexRubySDK::Operations::IncludeHttps), include_relay: T.nilable(::PlexRubySDK::Operations::IncludeRelay), include_i_pv6: T.nilable(::PlexRubySDK::Operations::IncludeIPv6), server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetServerResourcesResponse) } sig { params(client_id: ::String, include_https: T.nilable(::PlexRubySDK::Operations::IncludeHttps), include_relay: T.nilable(::PlexRubySDK::Operations::IncludeRelay), include_i_pv6: T.nilable(::PlexRubySDK::Operations::IncludeIPv6), server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetServerResourcesResponse) }
def get_server_resources(client_id, include_https = nil, include_relay = nil, include_i_pv6 = nil, server_url = nil) def get_server_resources(client_id, include_https = nil, include_relay = nil, include_i_pv6 = nil, server_url = nil, timeout_ms = nil)
# get_server_resources - Get Server Resources # get_server_resources - Get Server Resources
# Get Plex server access tokens and server connections # Get Plex server access tokens and server connections
request = ::PlexRubySDK::Operations::GetServerResourcesRequest.new( request = ::PlexRubySDK::Operations::GetServerResourcesRequest.new(
@@ -243,11 +445,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'get-server-resources',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -276,8 +528,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetPinRequest), server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetPinResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetPinRequest), server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetPinResponse) }
def get_pin(request, server_url = nil) def get_pin(request, server_url = nil, timeout_ms = nil)
# get_pin - Get a Pin # get_pin - Get a Pin
# Retrieve a Pin ID from Plex.tv to use for authentication flows # Retrieve a Pin ID from Plex.tv to use for authentication flows
base_url = Utils.template_url(GET_PIN_SERVERS[0], { base_url = Utils.template_url(GET_PIN_SERVERS[0], {
@@ -289,9 +541,58 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.post(url) do |req| timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
req.headers = headers timeout ||= @sdk_configuration.timeout
req.params = query_params
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getPin',
security_source: nil
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.post(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -315,8 +616,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetTokenByPinIdRequest), server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetTokenByPinIdResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetTokenByPinIdRequest), server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetTokenByPinIdResponse) }
def get_token_by_pin_id(request, server_url = nil) def get_token_by_pin_id(request, server_url = nil, timeout_ms = nil)
# get_token_by_pin_id - Get Access Token by PinId # get_token_by_pin_id - Get Access Token by PinId
# Retrieve an Access Token from Plex.tv after the Pin has been authenticated # Retrieve an Access Token from Plex.tv after the Pin has been authenticated
base_url = Utils.template_url(GET_TOKEN_BY_PIN_ID_SERVERS[0], { base_url = Utils.template_url(GET_TOKEN_BY_PIN_ID_SERVERS[0], {
@@ -332,8 +633,57 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
req.headers = headers timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getTokenByPinId',
security_source: nil
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -17,7 +20,9 @@ module PlexRubySDK
sig do sig do
params( params(
client: T.nilable(Faraday::Request), client: T.nilable(Faraday::Connection),
retry_config: T.nilable(::PlexRubySDK::Utils::RetryConfig),
timeout_ms: T.nilable(Integer),
security: T.nilable(::PlexRubySDK::Shared::Security), security: T.nilable(::PlexRubySDK::Shared::Security),
security_source: T.nilable(T.proc.returns(::PlexRubySDK::Shared::Security)), security_source: T.nilable(T.proc.returns(::PlexRubySDK::Shared::Security)),
protocol: T.nilable(::PlexRubySDK::ServerVariables::ServerProtocol), protocol: T.nilable(::PlexRubySDK::ServerVariables::ServerProtocol),
@@ -28,9 +33,11 @@ module PlexRubySDK
url_params: T.nilable(T::Hash[Symbol, String]) url_params: T.nilable(T::Hash[Symbol, String])
).void ).void
end end
def initialize(client: nil, security: nil, security_source: nil, protocol: nil, ip: nil, port: nil, server_idx: nil, server_url: nil, url_params: nil) def initialize(client: nil, retry_config: nil, timeout_ms: nil, security: nil, security_source: nil, protocol: nil, ip: nil, port: nil, server_idx: nil, server_url: nil, url_params: nil)
## Instantiates the SDK configuring it with the provided parameters. ## Instantiates the SDK configuring it with the provided parameters.
# @param [T.nilable(Faraday::Request)] client The faraday HTTP client to use for all operations # @param [T.nilable(Faraday::Connection)] client The faraday HTTP client to use for all operations
# @param [T.nilable(::PlexRubySDK::Utils::RetryConfig)] retry_config The retry configuration to use for all operations
# @param [T.nilable(Integer)] timeout_ms Request timeout in milliseconds for all operations
# @param [T.nilable(::PlexRubySDK::Shared::Security)] security: The security details required for authentication # @param [T.nilable(::PlexRubySDK::Shared::Security)] security: The security details required for authentication
# @param [T.proc.returns(T.nilable(::PlexRubySDK::Shared::Security))] security_source: A function that returns security details required for authentication # @param [T.proc.returns(T.nilable(::PlexRubySDK::Shared::Security))] security_source: A function that returns security details required for authentication
# @param [T.nilable(::PlexRubySDK::ServerVariables::ServerProtocol)] protocol: Allows setting the protocol variable for url substitution # @param [T.nilable(::PlexRubySDK::ServerVariables::ServerProtocol)] protocol: Allows setting the protocol variable for url substitution
@@ -40,13 +47,16 @@ module PlexRubySDK
# @param [T.nilable(::String)] server_url The server URL to use for all operations # @param [T.nilable(::String)] server_url The server URL to use for all operations
# @param [T.nilable(::Hash<::Symbol, ::String>)] url_params Parameters to optionally template the server URL with # @param [T.nilable(::Hash<::Symbol, ::String>)] url_params Parameters to optionally template the server URL with
if client.nil? connection_options = {
client = Faraday.new(request: { request: {
params_encoder: Faraday::FlatParamsEncoder params_encoder: Faraday::FlatParamsEncoder
}) do |f| }
f.request :multipart, {} }
# f.response :logger connection_options[:request][:timeout] = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
end
client ||= Faraday.new(**connection_options) do |f|
f.request :multipart, {}
# f.response :logger, nil, { headers: true, bodies: true, errors: true }
end end
if !server_url.nil? if !server_url.nil?
@@ -71,14 +81,23 @@ module PlexRubySDK
port: port || '32400', port: port || '32400',
}, },
] ]
hooks = SDKHooks::Hooks.new
@sdk_configuration = SDKConfiguration.new( @sdk_configuration = SDKConfiguration.new(
client, client,
hooks,
retry_config,
timeout_ms,
security, security,
security_source, security_source,
server_url, server_url,
server_idx, server_idx,
server_params server_params
) )
original_server_url = @sdk_configuration.get_server_details.first
new_server_url, @sdk_configuration.client = hooks.sdk_init(base_url: original_server_url, client: client)
@sdk_configuration.server_url = new_server_url if new_server_url != original_server_url
init_sdks init_sdks
end end

View File

@@ -0,0 +1,103 @@
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
# typed: true
# frozen_string_literal: true
require_relative './registration'
require_relative './types'
require 'sorbet-runtime'
module PlexRubySDK
module SDKHooks
class Hooks
extend T::Sig
sig { void }
def initialize
@sdk_init_hooks = T.let([], T::Array[AbstractSDKInitHook])
@before_request_hooks = T.let([], T::Array[AbstractBeforeRequestHook])
@after_success_hooks = T.let([], T::Array[AbstractAfterSuccessHook])
@after_error_hooks = T.let([], T::Array[AbstractAfterErrorHook])
Registration.init_hooks self
end
sig { params(hook: AbstractSDKInitHook).void }
def register_sdk_init_hook(hook)
@sdk_init_hooks << hook
end
sig { params(hook: AbstractBeforeRequestHook).void }
def register_before_request_hook(hook)
@before_request_hooks << hook
end
sig { params(hook: AbstractAfterSuccessHook).void }
def register_after_success_hook(hook)
@after_success_hooks << hook
end
sig { params(hook: AbstractAfterErrorHook).void }
def register_after_error_hook(hook)
@after_error_hooks << hook
end
sig do
params(
base_url: String,
client: Faraday::Connection
).returns([String, Faraday::Connection])
end
def sdk_init(base_url:, client:)
@sdk_init_hooks.each do |hook|
base_url, client = hook.sdk_init(base_url: base_url, client: client)
end
return base_url, client
end
sig do
params(
hook_ctx: BeforeRequestHookContext,
request: Faraday::Request
).returns(Faraday::Request)
end
def before_request(hook_ctx:, request:)
@before_request_hooks.each do |hook|
request = hook.before_request(hook_ctx: hook_ctx, request: request)
end
request
end
sig do
params(
hook_ctx: AfterSuccessHookContext,
response: Faraday::Response
).returns(Faraday::Response)
end
def after_success(hook_ctx:, response:)
@after_success_hooks.each do |hook|
response = hook.after_success(hook_ctx: hook_ctx, response: response)
end
response
end
sig do
params(
error: T.nilable(StandardError),
hook_ctx: AfterErrorHookContext,
response: T.nilable(Faraday::Response)
).returns(T.nilable(Faraday::Response))
end
def after_error(error:, hook_ctx:, response:)
@after_error_hooks.each do |hook|
response = hook.after_error(error: error, hook_ctx: hook_ctx, response: response)
end
response
end
end
end
end

View File

@@ -0,0 +1,35 @@
# typed: true
# frozen_string_literal: true
#
# This file is only ever generated once on the first generation and then is free to be modified.
# Any hooks you wish to add should be registered in the init_hooks method.
#
# Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance.
#
require_relative './types'
require 'sorbet-runtime'
module PlexRubySDK
module SDKHooks
class Registration
extend T::Sig
sig do
params(
hooks: Hooks
).void
end
def self.init_hooks(hooks)
# example_hook = ExampleHook.new
# hooks.register_sdk_init_hook example_hook
# hooks.register_before_request_hook example_hook
# hooks.register_after_error_hook example_hook
# hooks.register_after_success_hook example_hook
end
end
end
end

View File

@@ -0,0 +1,152 @@
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
# typed: true
# frozen_string_literal: true
require 'sorbet-runtime'
module PlexRubySDK
module SDKHooks
class HookContext
extend T::Sig
sig { returns(String) }
attr_accessor :base_url
sig { returns(T.nilable(T::Array[String])) }
attr_accessor :oauth2_scopes
sig { returns(String) }
attr_accessor :operation_id
sig { returns(T.nilable(T.proc.returns(T.untyped))) }
attr_accessor :security_source
sig do
params(
base_url: String,
oauth2_scopes: T.nilable(T::Array[String]),
operation_id: String,
security_source: T.nilable(T.proc.returns(T.untyped))
).void
end
def initialize(base_url:, oauth2_scopes:, operation_id:, security_source:)
@base_url = T.let(base_url, String)
@oauth2_scopes = T.let(oauth2_scopes, T.nilable(T::Array[String]))
@operation_id = T.let(operation_id, String)
@security_source = T.let(security_source, T.nilable(T.proc.returns(T.untyped)))
end
end
class BeforeRequestHookContext < HookContext
extend T::Sig
sig do
params(
hook_ctx: HookContext
).void
end
def initialize(hook_ctx:)
super(
base_url: hook_ctx.base_url,
operation_id: hook_ctx.operation_id,
oauth2_scopes: hook_ctx.oauth2_scopes,
security_source: hook_ctx.security_source
)
end
end
class AfterSuccessHookContext < HookContext
extend T::Sig
sig do
params(
hook_ctx: HookContext
).void
end
def initialize(hook_ctx:)
super(
base_url: hook_ctx.base_url,
operation_id: hook_ctx.operation_id,
oauth2_scopes: hook_ctx.oauth2_scopes,
security_source: hook_ctx.security_source
)
end
end
class AfterErrorHookContext < HookContext
extend T::Sig
sig do
params(
hook_ctx: HookContext
).void
end
def initialize(hook_ctx:)
super(
base_url: hook_ctx.base_url,
operation_id: hook_ctx.operation_id,
oauth2_scopes: hook_ctx.oauth2_scopes,
security_source: hook_ctx.security_source
)
end
end
module AbstractSDKInitHook
extend T::Sig
extend T::Helpers
abstract!
sig do
abstract.params(
base_url: String,
client: Faraday::Connection
).returns([String, Faraday::Connection])
end
def sdk_init(base_url:, client:); end
end
module AbstractBeforeRequestHook
extend T::Sig
extend T::Helpers
abstract!
sig do
abstract.params(
hook_ctx: BeforeRequestHookContext,
request: Faraday::Request
).returns(Faraday::Request)
end
def before_request(hook_ctx:, request:); end
end
module AbstractAfterSuccessHook
extend T::Sig
extend T::Helpers
abstract!
sig do
abstract.params(
hook_ctx: AfterSuccessHookContext,
response: Faraday::Response
).returns(Faraday::Response)
end
def after_success(hook_ctx:, response:); end
end
module AbstractAfterErrorHook
extend T::Sig
extend T::Helpers
abstract!
sig do
abstract.params(
error: T.nilable(StandardError),
hook_ctx: AfterErrorHookContext,
response: T.nilable(Faraday::Response)
).returns(T.nilable(Faraday::Response))
end
def after_error(error:, hook_ctx:, response:); end
end
end
end

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -19,6 +22,9 @@ module PlexRubySDK
extend T::Sig extend T::Sig
field :client, T.nilable(Faraday::Connection) field :client, T.nilable(Faraday::Connection)
field :hooks, ::PlexRubySDK::SDKHooks::Hooks
field :retry_config, T.nilable(::PlexRubySDK::Utils::RetryConfig)
field :timeout, T.nilable(Float)
field :security_source, T.nilable(T.proc.returns(T.nilable(::PlexRubySDK::Shared::Security))) field :security_source, T.nilable(T.proc.returns(T.nilable(::PlexRubySDK::Shared::Security)))
field :server_url, T.nilable(String) field :server_url, T.nilable(String)
field :server_idx, T.nilable(Integer) field :server_idx, T.nilable(Integer)
@@ -29,12 +35,25 @@ module PlexRubySDK
field :gen_version, String field :gen_version, String
field :user_agent, String field :user_agent, String
sig do
params(
sig { params(client: T.nilable(Faraday::Connection), security: T.nilable(::PlexRubySDK::Shared::Security), security_source: T.nilable(T.proc.returns(::PlexRubySDK::Shared::Security)), server_url: T.nilable(String), server_idx: T.nilable(Integer), server_params: T::Array[String]).void } client: T.nilable(Faraday::Connection),
def initialize(client, security, security_source, server_url, server_idx, server_params) hooks: ::PlexRubySDK::SDKHooks::Hooks,
retry_config: T.nilable(::PlexRubySDK::Utils::RetryConfig),
timeout_ms: T.nilable(Integer),
security: T.nilable(::PlexRubySDK::Shared::Security),
security_source: T.nilable(T.proc.returns(::PlexRubySDK::Shared::Security)),
server_url: T.nilable(String),
server_idx: T.nilable(Integer),
server_params: T::Array[String]
).void
end
def initialize(client, hooks, retry_config, timeout_ms, security, security_source, server_url, server_idx, server_params)
@client = client @client = client
@hooks = hooks
@retry_config = retry_config
@server_url = server_url @server_url = server_url
@timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
@server_idx = server_idx.nil? ? 0 : server_idx @server_idx = server_idx.nil? ? 0 : server_idx
raise StandardError, "Invalid server index #{server_idx}" if @server_idx.negative? || @server_idx >= SERVERS.length raise StandardError, "Invalid server index #{server_idx}" if @server_idx.negative? || @server_idx >= SERVERS.length
@server_params = server_params @server_params = server_params
@@ -45,9 +64,9 @@ module PlexRubySDK
end end
@language = 'ruby' @language = 'ruby'
@openapi_doc_version = '0.0.3' @openapi_doc_version = '0.0.3'
@sdk_version = '0.7.7' @sdk_version = '0.8.0'
@gen_version = '2.545.4' @gen_version = '2.563.1'
@user_agent = 'speakeasy-sdk/ruby 0.7.7 2.545.4 0.0.3 plex_ruby_sdk' @user_agent = 'speakeasy-sdk/ruby 0.8.0 2.563.1 0.0.3 plex_ruby_sdk'
end end
sig { returns([String, T::Hash[Symbol, String]]) } sig { returns([String, T::Hash[Symbol, String]]) }

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { params(query: ::String, section_id: T.nilable(::Float), limit: T.nilable(::Float)).returns(::PlexRubySDK::Operations::PerformSearchResponse) } sig { params(query: ::String, section_id: T.nilable(::Float), limit: T.nilable(::Float), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::PerformSearchResponse) }
def perform_search(query, section_id = nil, limit = nil) def perform_search(query, section_id = nil, limit = nil, timeout_ms = nil)
# perform_search - Perform a search # perform_search - Perform a search
# This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor). # This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor).
# #
@@ -50,11 +53,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'performSearch',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -79,8 +132,8 @@ module PlexRubySDK
end end
sig { params(query: ::String, section_id: T.nilable(::Float), limit: T.nilable(::Float)).returns(::PlexRubySDK::Operations::PerformVoiceSearchResponse) } sig { params(query: ::String, section_id: T.nilable(::Float), limit: T.nilable(::Float), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::PerformVoiceSearchResponse) }
def perform_voice_search(query, section_id = nil, limit = nil) def perform_voice_search(query, section_id = nil, limit = nil, timeout_ms = nil)
# perform_voice_search - Perform a voice search # perform_voice_search - Perform a voice search
# This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint. # This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint.
# It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint. # It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint.
@@ -101,11 +154,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'performVoiceSearch',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -130,8 +233,8 @@ module PlexRubySDK
end end
sig { params(query: ::String).returns(::PlexRubySDK::Operations::GetSearchResultsResponse) } sig { params(query: ::String, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetSearchResultsResponse) }
def get_search_results(query) def get_search_results(query, timeout_ms = nil)
# get_search_results - Get Search Results # get_search_results - Get Search Results
# This will search the database for the string provided. # This will search the database for the string provided.
request = ::PlexRubySDK::Operations::GetSearchResultsRequest.new( request = ::PlexRubySDK::Operations::GetSearchResultsRequest.new(
@@ -146,11 +249,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getSearchResults',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetServerCapabilitiesResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetServerCapabilitiesResponse) }
def get_server_capabilities def get_server_capabilities(timeout_ms = nil)
# get_server_capabilities - Get Server Capabilities # get_server_capabilities - Get Server Capabilities
# Get Server Capabilities # Get Server Capabilities
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -31,10 +34,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getServerCapabilities',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -63,8 +116,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetServerPreferencesResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetServerPreferencesResponse) }
def get_server_preferences def get_server_preferences(timeout_ms = nil)
# get_server_preferences - Get Server Preferences # get_server_preferences - Get Server Preferences
# Get Server Preferences # Get Server Preferences
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -74,10 +127,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getServerPreferences',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -106,8 +209,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetAvailableClientsResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetAvailableClientsResponse) }
def get_available_clients def get_available_clients(timeout_ms = nil)
# get_available_clients - Get Available Clients # get_available_clients - Get Available Clients
# Get Available Clients # Get Available Clients
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -117,10 +220,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getAvailableClients',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -149,8 +302,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetDevicesResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetDevicesResponse) }
def get_devices def get_devices(timeout_ms = nil)
# get_devices - Get Devices # get_devices - Get Devices
# Get Devices # Get Devices
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -160,10 +313,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getDevices',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -192,8 +395,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetServerIdentityResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetServerIdentityResponse) }
def get_server_identity def get_server_identity(timeout_ms = nil)
# get_server_identity - Get Server Identity # get_server_identity - Get Server Identity
# This request is useful to determine if the server is online or offline # This request is useful to determine if the server is online or offline
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -203,8 +406,57 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
req.headers = headers timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'get-server-identity',
security_source: nil
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -228,8 +480,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetMyPlexAccountResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetMyPlexAccountResponse) }
def get_my_plex_account def get_my_plex_account(timeout_ms = nil)
# get_my_plex_account - Get MyPlex Account # get_my_plex_account - Get MyPlex Account
# Returns MyPlex Account Information # Returns MyPlex Account Information
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -239,10 +491,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getMyPlexAccount',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -271,8 +573,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetResizedPhotoRequest)).returns(::PlexRubySDK::Operations::GetResizedPhotoResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetResizedPhotoRequest), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetResizedPhotoResponse) }
def get_resized_photo(request) def get_resized_photo(request, timeout_ms = nil)
# get_resized_photo - Get a Resized Photo # get_resized_photo - Get a Resized Photo
# Plex's Photo transcoder is used throughout the service to serve images at specified sizes. # Plex's Photo transcoder is used throughout the service to serve images at specified sizes.
# #
@@ -284,11 +586,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getResizedPhoto',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -313,8 +665,8 @@ module PlexRubySDK
end end
sig { params(x_plex_token: ::String).returns(::PlexRubySDK::Operations::GetMediaProvidersResponse) } sig { params(x_plex_token: ::String, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetMediaProvidersResponse) }
def get_media_providers(x_plex_token) def get_media_providers(x_plex_token, timeout_ms = nil)
# get_media_providers - Get Media Providers # get_media_providers - Get Media Providers
# Retrieves media providers and their features from the Plex server. # Retrieves media providers and their features from the Plex server.
request = ::PlexRubySDK::Operations::GetMediaProvidersRequest.new( request = ::PlexRubySDK::Operations::GetMediaProvidersRequest.new(
@@ -328,10 +680,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'get-media-providers',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -360,8 +762,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetServerListResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetServerListResponse) }
def get_server_list def get_server_list(timeout_ms = nil)
# get_server_list - Get Server List # get_server_list - Get Server List
# Get Server List # Get Server List
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -371,10 +773,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getServerList',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetSessionsResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetSessionsResponse) }
def get_sessions def get_sessions(timeout_ms = nil)
# get_sessions - Get Active Sessions # get_sessions - Get Active Sessions
# This will retrieve the "Now Playing" Information of the PMS. # This will retrieve the "Now Playing" Information of the PMS.
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -31,10 +34,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getSessions',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -63,8 +116,8 @@ module PlexRubySDK
end end
sig { params(sort: T.nilable(::String), account_id: T.nilable(::Integer), filter: T.nilable(::PlexRubySDK::Operations::QueryParamFilter), library_section_id: T.nilable(::Integer)).returns(::PlexRubySDK::Operations::GetSessionHistoryResponse) } sig { params(sort: T.nilable(::String), account_id: T.nilable(::Integer), filter: T.nilable(::PlexRubySDK::Operations::QueryParamFilter), library_section_id: T.nilable(::Integer), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetSessionHistoryResponse) }
def get_session_history(sort = nil, account_id = nil, filter = nil, library_section_id = nil) def get_session_history(sort = nil, account_id = nil, filter = nil, library_section_id = nil, timeout_ms = nil)
# get_session_history - Get Session History # get_session_history - Get Session History
# This will Retrieve a listing of all history views. # This will Retrieve a listing of all history views.
request = ::PlexRubySDK::Operations::GetSessionHistoryRequest.new( request = ::PlexRubySDK::Operations::GetSessionHistoryRequest.new(
@@ -82,11 +135,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getSessionHistory',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -115,8 +218,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetTranscodeSessionsResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetTranscodeSessionsResponse) }
def get_transcode_sessions def get_transcode_sessions(timeout_ms = nil)
# get_transcode_sessions - Get Transcode Sessions # get_transcode_sessions - Get Transcode Sessions
# Get Transcode Sessions # Get Transcode Sessions
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -126,10 +229,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getTranscodeSessions',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -158,8 +311,8 @@ module PlexRubySDK
end end
sig { params(session_key: ::String).returns(::PlexRubySDK::Operations::StopTranscodeSessionResponse) } sig { params(session_key: ::String, timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::StopTranscodeSessionResponse) }
def stop_transcode_session(session_key) def stop_transcode_session(session_key, timeout_ms = nil)
# stop_transcode_session - Stop a Transcode Session # stop_transcode_session - Stop a Transcode Session
# Stop a Transcode Session # Stop a Transcode Session
request = ::PlexRubySDK::Operations::StopTranscodeSessionRequest.new( request = ::PlexRubySDK::Operations::StopTranscodeSessionRequest.new(
@@ -178,10 +331,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.delete(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'stopTranscodeSession',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.delete(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { params(timespan: T.nilable(::Integer)).returns(::PlexRubySDK::Operations::GetStatisticsResponse) } sig { params(timespan: T.nilable(::Integer), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetStatisticsResponse) }
def get_statistics(timespan = nil) def get_statistics(timespan = nil, timeout_ms = nil)
# get_statistics - Get Media Statistics # get_statistics - Get Media Statistics
# This will return the media statistics for the server # This will return the media statistics for the server
request = ::PlexRubySDK::Operations::GetStatisticsRequest.new( request = ::PlexRubySDK::Operations::GetStatisticsRequest.new(
@@ -36,11 +39,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getStatistics',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -69,8 +122,8 @@ module PlexRubySDK
end end
sig { params(timespan: T.nilable(::Integer)).returns(::PlexRubySDK::Operations::GetResourcesStatisticsResponse) } sig { params(timespan: T.nilable(::Integer), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetResourcesStatisticsResponse) }
def get_resources_statistics(timespan = nil) def get_resources_statistics(timespan = nil, timeout_ms = nil)
# get_resources_statistics - Get Resources Statistics # get_resources_statistics - Get Resources Statistics
# This will return the resources for the server # This will return the resources for the server
request = ::PlexRubySDK::Operations::GetResourcesStatisticsRequest.new( request = ::PlexRubySDK::Operations::GetResourcesStatisticsRequest.new(
@@ -85,11 +138,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getResourcesStatistics',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -118,8 +221,8 @@ module PlexRubySDK
end end
sig { params(timespan: T.nilable(::Integer)).returns(::PlexRubySDK::Operations::GetBandwidthStatisticsResponse) } sig { params(timespan: T.nilable(::Integer), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetBandwidthStatisticsResponse) }
def get_bandwidth_statistics(timespan = nil) def get_bandwidth_statistics(timespan = nil, timeout_ms = nil)
# get_bandwidth_statistics - Get Bandwidth Statistics # get_bandwidth_statistics - Get Bandwidth Statistics
# This will return the bandwidth statistics for the server # This will return the bandwidth statistics for the server
request = ::PlexRubySDK::Operations::GetBandwidthStatisticsRequest.new( request = ::PlexRubySDK::Operations::GetBandwidthStatisticsRequest.new(
@@ -134,11 +237,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getBandwidthStatistics',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -21,8 +24,8 @@ module PlexRubySDK
end end
sig { returns(::PlexRubySDK::Operations::GetUpdateStatusResponse) } sig { params(timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetUpdateStatusResponse) }
def get_update_status def get_update_status(timeout_ms = nil)
# get_update_status - Querying status of updates # get_update_status - Querying status of updates
# Querying status of updates # Querying status of updates
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -32,10 +35,60 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
Utils.configure_request_security(req, security) if !security.nil? timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getUpdateStatus',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -64,8 +117,8 @@ module PlexRubySDK
end end
sig { params(download: T.nilable(::PlexRubySDK::Operations::Download)).returns(::PlexRubySDK::Operations::CheckForUpdatesResponse) } sig { params(download: T.nilable(::PlexRubySDK::Operations::Download), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::CheckForUpdatesResponse) }
def check_for_updates(download = nil) def check_for_updates(download = nil, timeout_ms = nil)
# check_for_updates - Checking for updates # check_for_updates - Checking for updates
# Checking for updates # Checking for updates
request = ::PlexRubySDK::Operations::CheckForUpdatesRequest.new( request = ::PlexRubySDK::Operations::CheckForUpdatesRequest.new(
@@ -80,11 +133,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.put(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'checkForUpdates',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.put(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -109,8 +212,8 @@ module PlexRubySDK
end end
sig { params(tonight: T.nilable(::PlexRubySDK::Operations::Tonight), skip: T.nilable(::PlexRubySDK::Operations::Skip)).returns(::PlexRubySDK::Operations::ApplyUpdatesResponse) } sig { params(tonight: T.nilable(::PlexRubySDK::Operations::Tonight), skip: T.nilable(::PlexRubySDK::Operations::Skip), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::ApplyUpdatesResponse) }
def apply_updates(tonight = nil, skip = nil) def apply_updates(tonight = nil, skip = nil, timeout_ms = nil)
# apply_updates - Apply Updates # apply_updates - Apply Updates
# Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed # Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed
# #
@@ -127,11 +230,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.put(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'applyUpdates',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.put(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -24,8 +27,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetUsersRequest), server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetUsersResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetUsersRequest), server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetUsersResponse) }
def get_users(request, server_url = nil) def get_users(request, server_url = nil, timeout_ms = nil)
# get_users - Get list of all connected users # get_users - Get list of all connected users
# Get list of all users that are friends and have library access with the provided Plex authentication token # Get list of all users that are friends and have library access with the provided Plex authentication token
base_url = Utils.template_url(GET_USERS_SERVERS[0], { base_url = Utils.template_url(GET_USERS_SERVERS[0], {
@@ -36,8 +39,57 @@ module PlexRubySDK
headers['Accept'] = 'application/json;q=1, application/xml;q=0' headers['Accept'] = 'application/json;q=1, application/xml;q=0'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
req.headers = headers timeout ||= @sdk_configuration.timeout
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'get-users',
security_source: nil
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -0,0 +1,95 @@
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
# typed: true
# frozen_string_literal: true
require 'faraday/retry'
require 'sorbet-runtime'
module PlexRubySDK
module Utils
class BackoffStrategy
extend T::Sig
sig { returns(T.nilable(::Float)) }
attr_accessor :exponent
sig { returns(T.nilable(::Integer)) }
attr_accessor :initial_interval
sig { returns(T.nilable(::Integer)) }
attr_accessor :max_elapsed_time
sig { returns(T.nilable(::Integer)) }
attr_accessor :max_interval
sig do
params(
exponent: T.nilable(::Float),
initial_interval: T.nilable(::Integer),
max_elapsed_time: T.nilable(::Integer),
max_interval: T.nilable(::Integer)
).void
end
def initialize(exponent: nil, initial_interval: nil, max_elapsed_time: nil, max_interval: nil)
@exponent = T.let(exponent, T.nilable(::Float))
@initial_interval = T.let(initial_interval, T.nilable(::Integer))
@max_elapsed_time = T.let(max_elapsed_time, T.nilable(::Integer))
@max_interval = T.let(max_interval, T.nilable(::Integer))
end
end
class RetryConfig
extend T::Sig
sig { returns(T.nilable(BackoffStrategy)) }
attr_accessor :backoff
sig { returns(T.nilable(T::Boolean)) }
attr_accessor :retry_connection_errors
sig { returns(T.nilable(::String)) }
attr_accessor :strategy
sig do
params(
backoff: T.nilable(BackoffStrategy),
retry_connection_errors: T.nilable(T::Boolean),
strategy: T.nilable(::String)
).void
end
def initialize(backoff: nil, retry_connection_errors: nil, strategy: nil)
@backoff = T.let(backoff, T.nilable(BackoffStrategy))
@retry_connection_errors = T.let(retry_connection_errors, T.nilable(T::Boolean))
@strategy = T.let(strategy, T.nilable(::String))
end
sig { params(initial_time: ::Time).returns(::Hash) }
def to_faraday_retry_options(initial_time:)
retry_options = {
# must overwrite default max of 2 retries and it must be positive
max: 1_000_000_000,
# ensure all HTTP methods are retried, especially via retry_if
methods: [],
}
if @retry_connection_errors
retry_options[:exceptions] = Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS + [Faraday::ConnectionFailed]
end
if @strategy == 'backoff' && @backoff
retry_options[:backoff_factor] = @backoff.exponent unless @backoff.exponent.nil?
retry_options[:interval] = (@backoff.initial_interval.to_f / 1000) unless @backoff.initial_interval.nil?
retry_options[:max_interval] = @backoff.max_interval unless @backoff.max_interval.nil?
unless @backoff.max_elapsed_time.nil?
stop_time = initial_time + (@backoff.max_elapsed_time.to_f / 1000)
retry_options[:retry_if] = ->(_env, _exc) { Time.now < stop_time }
end
end
retry_options
end
end
end
end

View File

@@ -351,6 +351,15 @@ module PlexRubySDK
server_url.delete_suffix('/') + path server_url.delete_suffix('/') + path
end end
sig { params(status: Integer).returns(T::Boolean) }
def self.error_status?(status)
status_major = status / 100
return true if status_major == 4
return true if status_major == 5
false
end
sig { params(content_type: String, pattern: String).returns(T::Boolean) } sig { params(content_type: String, pattern: String).returns(T::Boolean) }
def self.match_content_type(content_type, pattern) def self.match_content_type(content_type, pattern)
return true if content_type == pattern || ['*', '*/*'].include?(pattern) return true if content_type == pattern || ['*', '*/*'].include?(pattern)
@@ -365,6 +374,7 @@ module PlexRubySDK
sig { params(req: Faraday::Request, security: Object).void } sig { params(req: Faraday::Request, security: Object).void }
def self.configure_request_security(req, security) def self.configure_request_security(req, security)
return if security.nil?
sec_fields = security.fields sec_fields = security.fields
sec_fields.each do |sec_field| sec_fields.each do |sec_field|
value = security.send(sec_field.name) value = security.send(sec_field.name)

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -20,8 +23,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetTimelineRequest)).returns(::PlexRubySDK::Operations::GetTimelineResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetTimelineRequest), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetTimelineResponse) }
def get_timeline(request) def get_timeline(request, timeout_ms = nil)
# get_timeline - Get the timeline for a media item # get_timeline - Get the timeline for a media item
# Get the timeline for a media item # Get the timeline for a media item
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -32,11 +35,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'getTimeline',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
@@ -61,8 +114,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::StartUniversalTranscodeRequest)).returns(::PlexRubySDK::Operations::StartUniversalTranscodeResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::StartUniversalTranscodeRequest), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::StartUniversalTranscodeResponse) }
def start_universal_transcode(request) def start_universal_transcode(request, timeout_ms = nil)
# start_universal_transcode - Start Universal Transcode # start_universal_transcode - Start Universal Transcode
# Begin a Universal Transcode Session # Begin a Universal Transcode Session
url, params = @sdk_configuration.get_server_details url, params = @sdk_configuration.get_server_details
@@ -73,11 +126,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'startUniversalTranscode',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -5,7 +5,10 @@
require 'faraday' require 'faraday'
require 'faraday/multipart' require 'faraday/multipart'
require 'faraday/retry'
require 'sorbet-runtime' require 'sorbet-runtime'
require_relative 'sdk_hooks/hooks'
require_relative 'utils/retries'
module PlexRubySDK module PlexRubySDK
extend T::Sig extend T::Sig
@@ -25,8 +28,8 @@ module PlexRubySDK
end end
sig { params(request: T.nilable(::PlexRubySDK::Operations::GetWatchListRequest), server_url: T.nilable(String)).returns(::PlexRubySDK::Operations::GetWatchListResponse) } sig { params(request: T.nilable(::PlexRubySDK::Operations::GetWatchListRequest), server_url: T.nilable(String), timeout_ms: T.nilable(Integer)).returns(::PlexRubySDK::Operations::GetWatchListResponse) }
def get_watch_list(request, server_url = nil) def get_watch_list(request, server_url = nil, timeout_ms = nil)
# get_watch_list - Get User Watchlist # get_watch_list - Get User Watchlist
# Get User Watchlist # Get User Watchlist
base_url = Utils.template_url(GET_WATCH_LIST_SERVERS[0], { base_url = Utils.template_url(GET_WATCH_LIST_SERVERS[0], {
@@ -43,11 +46,61 @@ module PlexRubySDK
headers['Accept'] = 'application/json' headers['Accept'] = 'application/json'
headers['user-agent'] = @sdk_configuration.user_agent headers['user-agent'] = @sdk_configuration.user_agent
r = @sdk_configuration.client.get(url) do |req| security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
req.headers = headers
req.params = query_params timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil timeout ||= @sdk_configuration.timeout
Utils.configure_request_security(req, security) if !security.nil?
connection = @sdk_configuration.client
hook_ctx = SDKHooks::HookContext.new(
base_url: base_url,
oauth2_scopes: nil,
operation_id: 'get-watch-list',
security_source: @sdk_configuration.security_source
)
error = T.let(nil, T.nilable(StandardError))
r = T.let(nil, T.nilable(Faraday::Response))
begin
r = connection.get(url) do |req|
req.headers.merge!(headers)
req.options.timeout = timeout unless timeout.nil?
req.params = query_params
Utils.configure_request_security(req, security)
@sdk_configuration.hooks.before_request(
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
hook_ctx: hook_ctx
),
request: req
)
end
rescue StandardError => e
error = e
ensure
if r.nil? || Utils.error_status?(r.status)
r = @sdk_configuration.hooks.after_error(
error: error,
hook_ctx: SDKHooks::AfterErrorHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
else
r = @sdk_configuration.hooks.after_success(
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
hook_ctx: hook_ctx
),
response: r
)
end
if r.nil?
raise error if !error.nil?
raise 'no response'
end
end end
content_type = r.headers.fetch('Content-Type', 'application/octet-stream') content_type = r.headers.fetch('Content-Type', 'application/octet-stream')

View File

@@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path('lib', __dir__)
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = 'plex_ruby_sdk' s.name = 'plex_ruby_sdk'
s.version = '0.7.7' s.version = '0.8.0'
s.platform = Gem::Platform::RUBY s.platform = Gem::Platform::RUBY
s.licenses = ['Apache-2.0'] s.licenses = ['Apache-2.0']
s.summary = '' s.summary = ''
@@ -23,14 +23,14 @@ Gem::Specification.new do |s|
s.add_dependency('faraday') s.add_dependency('faraday')
s.add_dependency('faraday-multipart') s.add_dependency('faraday-multipart')
s.add_dependency('faraday-retry', '~> 2.2.1')
s.add_dependency('rack') s.add_dependency('rack')
s.add_dependency('rake') s.add_dependency('rake')
s.add_dependency('sorbet-runtime') s.add_dependency('sorbet-runtime')
s.add_development_dependency('minitest') s.add_development_dependency('minitest')
s.add_development_dependency('minitest-focus') s.add_development_dependency('minitest-focus')
s.add_development_dependency('rubocop', '~> 1.60.2') s.add_development_dependency('rubocop', '~> 1.73.2')
s.add_development_dependency('rubocop-minitest', '~> 0.37.1')
s.add_development_dependency('sorbet') s.add_development_dependency('sorbet')
s.add_development_dependency('tapioca') s.add_development_dependency('tapioca')
end end

207
sorbet/rbi/gems/faraday-retry@2.2.1.rbi generated Normal file
View File

@@ -0,0 +1,207 @@
# typed: true
# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `faraday-retry` gem.
# Please instead update this file by running `bin/tapioca gem faraday-retry`.
# Faraday namespace.
#
# source://faraday-retry//lib/faraday/retriable_response.rb#4
module Faraday
class << self
# source://faraday/2.12.2/lib/faraday.rb#55
def default_adapter; end
# source://faraday/2.12.2/lib/faraday.rb#102
def default_adapter=(adapter); end
# source://faraday/2.12.2/lib/faraday.rb#59
def default_adapter_options; end
# source://faraday/2.12.2/lib/faraday.rb#59
def default_adapter_options=(_arg0); end
# source://faraday/2.12.2/lib/faraday.rb#120
def default_connection; end
# source://faraday/2.12.2/lib/faraday.rb#62
def default_connection=(_arg0); end
# source://faraday/2.12.2/lib/faraday.rb#127
def default_connection_options; end
# source://faraday/2.12.2/lib/faraday.rb#134
def default_connection_options=(options); end
# source://faraday/2.12.2/lib/faraday.rb#67
def ignore_env_proxy; end
# source://faraday/2.12.2/lib/faraday.rb#67
def ignore_env_proxy=(_arg0); end
# source://faraday/2.12.2/lib/faraday.rb#46
def lib_path; end
# source://faraday/2.12.2/lib/faraday.rb#46
def lib_path=(_arg0); end
# source://faraday/2.12.2/lib/faraday.rb#96
def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
# source://faraday/2.12.2/lib/faraday.rb#107
def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
# source://faraday/2.12.2/lib/faraday.rb#42
def root_path; end
# source://faraday/2.12.2/lib/faraday.rb#42
def root_path=(_arg0); end
private
# source://faraday/2.12.2/lib/faraday.rb#143
def method_missing(name, *args, &block); end
end
end
# Exception used to control the Retry middleware.
#
# source://faraday-retry//lib/faraday/retriable_response.rb#6
class Faraday::RetriableResponse < ::Faraday::Error; end
# Middleware main module.
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#4
module Faraday::Retry; end
# This class provides the main implementation for your middleware.
# Your middleware can implement any of the following methods:
# * on_request - called when the request is being prepared
# * on_complete - called when the response is being processed
#
# Optionally, you can also override the following methods from Faraday::Middleware
# * initialize(app, options = {}) - the initializer method
# * call(env) - the main middleware invocation method.
# This already calls on_request and on_complete, so you normally don't need to override it.
# You may need to in case you need to "wrap" the request or need more control
# (see "retry" middleware: https://github.com/lostisland/faraday/blob/main/lib/faraday/request/retry.rb#L142).
# IMPORTANT: Remember to call `@app.call(env)` or `super` to not interrupt the middleware chain!
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#17
class Faraday::Retry::Middleware < ::Faraday::Middleware
# @option options
# @option options
# @option options
# @option options
# @option options
# @option options
# @option options
# @option options
# @option options
# @option options
# @option options
# @param app [#call]
# @param options [Hash]
# @return [Middleware] a new instance of Middleware
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#127
def initialize(app, options = T.unsafe(nil)); end
# An exception matcher for the rescue clause can usually be any object
# that responds to `===`, but for Ruby 1.8 it has to be a Class or Module.
#
# @api private
# @param exceptions [Array]
# @return [Module] an exception matcher
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#185
def build_exception_matcher(exceptions); end
# source://faraday-retry//lib/faraday/retry/middleware.rb#133
def calculate_sleep_amount(retries, env); end
# @param env [Faraday::Env]
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#147
def call(env); end
private
# RFC for RateLimit Header Fields for HTTP:
# https://www.ietf.org/archive/id/draft-ietf-httpapi-ratelimit-headers-05.html#name-fields-definition
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#222
def calculate_rate_limit_reset(env); end
# MDN spec for Retry-After header:
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#229
def calculate_retry_after(env); end
# source://faraday-retry//lib/faraday/retry/middleware.rb#234
def calculate_retry_interval(retries); end
# source://faraday-retry//lib/faraday/retry/middleware.rb#245
def parse_retry_header(env, header); end
# @return [Boolean]
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#206
def retry_request?(env, exception); end
# source://faraday-retry//lib/faraday/retry/middleware.rb#211
def rewind_files(body); end
end
# source://faraday-retry//lib/faraday/retry/middleware.rb#18
Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS = T.let(T.unsafe(nil), Array)
# source://faraday-retry//lib/faraday/retry/middleware.rb#22
Faraday::Retry::Middleware::IDEMPOTENT_METHODS = T.let(T.unsafe(nil), Array)
# Options contains the configurable parameters for the Retry middleware.
#
# source://faraday-retry//lib/faraday/retry/middleware.rb#25
class Faraday::Retry::Middleware::Options < ::Faraday::Options
# source://faraday-retry//lib/faraday/retry/middleware.rb#58
def backoff_factor; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#62
def exceptions; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#46
def interval; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#54
def interval_randomness; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#42
def max; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#50
def max_interval; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#66
def methods; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#74
def retry_block; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#70
def retry_if; end
# source://faraday-retry//lib/faraday/retry/middleware.rb#78
def retry_statuses; end
class << self
# source://faraday-retry//lib/faraday/retry/middleware.rb#34
def from(value); end
end
end
# source://faraday-retry//lib/faraday/retry/middleware.rb#32
Faraday::Retry::Middleware::Options::DEFAULT_CHECK = T.let(T.unsafe(nil), Proc)
# source://faraday-retry//lib/faraday/retry/version.rb#5
Faraday::Retry::VERSION = T.let(T.unsafe(nil), String)