=begin
#Visitor Identification

#The Visitor Identification API allows you to pass identification information to the HubSpot chat widget for otherwise unknown visitors that were verified by your own authentication system.

The version of the OpenAPI document: v3

Generated by: https://openapi-generator.tech
OpenAPI Generator version: 6.2.1

=end

module Hubspot
  module Conversations
    module VisitorIdentification
      class ApiError < ::StandardError
        attr_reader :code, :response_headers, :response_body

        # Usage examples:
        #   ApiError.new
        #   ApiError.new("message")
        #   ApiError.new(:code => 500, :response_headers => {}, :response_body => "")
        #   ApiError.new(:code => 404, :message => "Not Found")
        def initialize(arg = nil)
          if arg.is_a? Hash
            if arg.key?(:message) || arg.key?('message')
              super(arg[:message] || arg['message'])
            else
              super arg
            end

            arg.each do |k, v|
              instance_variable_set "@#{k}", v
            end
          else
            super arg
          end
        end

        # Override to_s to display a friendly error message
        def to_s
          message
        end

        def message
          if @message.nil?
            msg = "Error message: the server returns an error"
          else
            msg = @message
          end

          msg += "\nHTTP status code: #{code}" if code
          msg += "\nResponse headers: #{response_headers}" if response_headers
          msg += "\nResponse body: #{response_body}" if response_body

          msg
        end
      end
    end
  end
end
