# frozen_string_literal: true module Mastodon class Error < StandardError; end class NotPermittedError < Error; end class ValidationError < Error; end class HostValidationError < ValidationError; end class LengthValidationError < ValidationError; end class DimensionsValidationError < ValidationError; end class StreamValidationError < ValidationError; end class RejectPayloadError < ValidationError; end class FilterValidationError < ValidationError; end class RaceConditionError < Error; end class RateLimitExceededError < Error; end class SyntaxError < Error; end class InvalidParameterError < Error; end class UnexpectedResponseError < Error attr_reader :response def initialize(response = nil) @response = response if response.respond_to? :uri super("#{response.uri} returned code #{response.code}") else super end end end class PrivateNetworkAddressError < HostValidationError attr_reader :host def initialize(host) @host = host super() end end HTTP_CONNECTION_ERRORS = [ HTTP::ConnectionError, HTTP::Error, HTTP::TimeoutError, OpenSSL::SSL::SSLError, ].freeze end