2016-12-22 15:34:19 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Mastodon
|
|
|
|
class Error < StandardError; end
|
2017-02-26 17:23:06 -05:00
|
|
|
class NotPermittedError < Error; end
|
|
|
|
class ValidationError < Error; end
|
2018-02-24 13:16:11 -05:00
|
|
|
class HostValidationError < ValidationError; end
|
2018-03-26 08:02:10 -04:00
|
|
|
class LengthValidationError < ValidationError; end
|
2018-04-23 03:16:38 -04:00
|
|
|
class DimensionsValidationError < ValidationError; end
|
2020-07-19 16:28:27 -04:00
|
|
|
class StreamValidationError < ValidationError; end
|
2024-09-12 09:40:20 -04:00
|
|
|
class FilterValidationError < ValidationError; end
|
2017-04-03 16:54:46 -04:00
|
|
|
class RaceConditionError < Error; end
|
2020-03-08 10:17:39 -04:00
|
|
|
class RateLimitExceededError < Error; end
|
2022-04-08 15:21:49 -04:00
|
|
|
class SyntaxError < Error; end
|
2022-11-14 02:06:06 -05:00
|
|
|
class InvalidParameterError < Error; end
|
2017-07-19 19:59:07 -04:00
|
|
|
|
|
|
|
class UnexpectedResponseError < Error
|
2021-05-05 17:46:59 -04:00
|
|
|
attr_reader :response
|
|
|
|
|
2017-07-19 19:59:07 -04:00
|
|
|
def initialize(response = nil)
|
2021-05-05 17:46:59 -04:00
|
|
|
@response = response
|
|
|
|
|
2017-07-26 18:38:20 -04:00
|
|
|
if response.respond_to? :uri
|
|
|
|
super("#{response.uri} returned code #{response.code}")
|
|
|
|
else
|
|
|
|
super
|
|
|
|
end
|
2017-07-19 19:59:07 -04:00
|
|
|
end
|
|
|
|
end
|
2022-09-20 17:30:26 -04:00
|
|
|
|
|
|
|
class PrivateNetworkAddressError < HostValidationError
|
|
|
|
attr_reader :host
|
|
|
|
|
|
|
|
def initialize(host)
|
|
|
|
@host = host
|
|
|
|
super()
|
|
|
|
end
|
|
|
|
end
|
2024-10-08 09:53:35 -04:00
|
|
|
|
|
|
|
HTTP_CONNECTION_ERRORS = [
|
|
|
|
HTTP::ConnectionError,
|
|
|
|
HTTP::Error,
|
|
|
|
HTTP::TimeoutError,
|
2024-10-08 10:59:51 -04:00
|
|
|
OpenSSL::SSL::SSLError,
|
2024-10-08 09:53:35 -04:00
|
|
|
].freeze
|
2016-12-22 15:34:19 -05:00
|
|
|
end
|