Module: Pandoru
- Defined in:
- lib/pandoru/client.rb,
lib/pandoru.rb,
lib/pandoru/errors.rb,
lib/pandoru/models.rb,
lib/pandoru/version.rb,
lib/pandoru/transport.rb,
lib/pandoru/credentials.rb,
lib/pandoru/models/_base.rb,
lib/pandoru/secret_store.rb,
lib/pandoru/models/search.rb,
lib/pandoru/client_builder.rb,
lib/pandoru/models/station.rb,
lib/pandoru/models/bookmark.rb,
lib/pandoru/models/playlist.rb,
lib/pandoru/models/track_explanation.rb
Overview
Pandora API Exceptions
Defined Under Namespace
Modules: Client, ClientBuilders, Errors, Models, SecretStore, Transport Classes: APIError, ClientBuilder, Credentials, InvalidAuthToken, InvalidConfigError, InvalidPartnerLogin, InvalidRequestError, InvalidUserLogin, NetworkError, PandoruError, ParameterMissing
Constant Summary collapse
- APIClient =
Class aliases for convenience
Client::APIClient
- BaseAPIClient =
Client::BaseAPIClient
- APITransport =
Transport::APITransport
- InvalidAuthTokenError =
Error aliases
InvalidAuthToken- PandoraException =
PandoruError- API_ERRORS =
All Pandora API error codes from Python reference
{ 0 => "Internal Server Error", 1 => "Maintenance Mode", 2 => "Missing API Method", 3 => "Missing Auth Token", 4 => "Missing Partner ID", 5 => "Missing User ID", 6 => "Secure Protocol Required", 7 => "Certificate Required", 8 => "Parameter Type Mismatch", 9 => "Parameter Missing", 10 => "Parameter Value Invalid", 11 => "API Version Not Supported", 12 => "Pandora not available in this country", 13 => "Bad Sync Time", 14 => "Unknown Method Name", 15 => "Wrong Protocol - (http/https)", 1000 => "Read Only Mode", 1001 => "Invalid Auth Token", 1002 => "Invalid Partner Login", 1003 => "Listener Not Authorized - Subscription or Trial Expired", 1004 => "User Not Authorized", 1005 => "Station limit reached", 1006 => "Station does not exist", 1009 => "Device Not Found", 1010 => "Partner Not Authorized", 1011 => "Invalid Username", 1012 => "Invalid Password", 1023 => "Device Model Invalid", 1039 => "Too many requests for a new playlist", 9999 => "Authentication Required" }.freeze
- API_ERROR_MAP =
Error code mappings to exception classes
{ 0 => InvalidPartnerLogin, 1 => InvalidAuthToken, 2 => InvalidUserLogin, 5 => InvalidRequestError, 1001 => InvalidAuthToken, 1002 => InvalidPartnerLogin, 1012 => InvalidUserLogin }
- VERSION =
"0.2.0"
Class Attribute Summary collapse
-
.logger ⇒ Object
readonly
Returns the value of attribute logger.
Class Method Summary collapse
-
.api_error_for_code(code) ⇒ Object
Factory method to create appropriate error.
- .create_api_error(message, code = nil) ⇒ Object
- .create_logger ⇒ Object
- .root(*args) ⇒ Object
- .set_logger(logdev: $stdout, level: ::Logger::INFO) ⇒ Object
Class Attribute Details
.logger ⇒ Object (readonly)
Returns the value of attribute logger.
14 15 16 |
# File 'lib/pandoru.rb', line 14 def logger @logger end |
Class Method Details
.api_error_for_code(code) ⇒ Object
Factory method to create appropriate error
109 110 111 |
# File 'lib/pandoru/errors.rb', line 109 def self.api_error_for_code(code) API_ERROR_MAP[code] || APIError end |
.create_api_error(message, code = nil) ⇒ Object
113 114 115 116 |
# File 'lib/pandoru/errors.rb', line 113 def self.create_api_error(, code = nil) error_class = api_error_for_code(code) error_class.new(, code) end |
.create_logger ⇒ Object
24 25 26 |
# File 'lib/pandoru.rb', line 24 def create_logger set_logger end |
.root(*args) ⇒ Object
16 17 18 |
# File 'lib/pandoru.rb', line 16 def root(*args) (@root ||= Pathname.new(File.('../', __dir__))).join(*args) end |
.set_logger(logdev: $stdout, level: ::Logger::INFO) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/pandoru.rb', line 28 def set_logger(logdev: $stdout, level: ::Logger::INFO) @logger = ::Logger.new(logdev).tap do |log| log.progname = self.name log.level = level log.formatter = proc do |severity, datetime, progname, msg| color_code = color_for_severity(severity) formatted_severity = "#{color_code}#{severity[0]}#{reset_color}" "#{formatted_severity} - [#{datetime.strftime('%Y-%m-%d %H:%M:%S')}] #{progname}: #{msg}\n" end end end |