# Copyright (C) 2010 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require "addressable/uri" module Signet ## # An error indicating that the client has aborted an operation that # would have been unsafe to perform. class UnsafeOperationError < StandardError end ## # An error indicating the client failed to parse a value. class ParseError < StandardError end ## # An error indicating that the server considers the Authorization header to # be malformed(missing/unsupported/invalid parameters), and the request # should be considered invalid. class MalformedAuthorizationError < StandardError end ## # An error indicating that the server failed at processing the request # due to a internal error class RemoteServerError < StandardError end ## # An error indicating that the server sent an unexpected http status class UnexpectedStatusError < StandardError end ## # An error indicating the remote server refused to authorize the client. class AuthorizationError < StandardError ## # Creates a new authentication error. # # @param [String] message # A message describing the error. # @param [Hash] options # The configuration parameters for the request. # - :request - # A Faraday::Request object. Optional. # - :response - # A Faraday::Response object. Optional. # - :code - # An error code. # - :description - # Human-readable text intended to be used to assist in resolving the # error condition. # - :uri - # A URI identifying a human-readable web page with additional # information about the error, indended for the resource owner. def initialize message, options = {} super message @options = options @request = options[:request] @response = options[:response] @code = options[:code] @description = options[:description] @uri = Addressable::URI.parse options[:uri] end ## # The HTTP request that triggered this authentication error. # # @return [Array] A tuple of method, uri, headers, and body. attr_reader :request ## # The HTTP response that triggered this authentication error. # # @return [Array] A tuple of status, headers, and body. attr_reader :response end end