Sha256: ad7469de11d6cd094ae319b921c8991bab28b47ef9954e1fe2686c92f8000a17

Contents?: true

Size: 1.77 KB

Versions: 2

Compression:

Stored size: 1.77 KB

Contents

module OrangeSms
  module Error
    class AuthenticationError < StandardError
      attr_reader :message, :response, :status, :more_info, :error_message

      def initialize(message, response)
        @status = response.status
        body = JSON.parse(response.body)
        @error_message = body.fetch('error', nil)
        @more_info = body.fetch('error_description', nil)
        @message = format_message(message)
        @response = response
      end

      def to_s
        message
      end

      private

      def format_message(initial_message)
        message = "[HTTP #{status}] #{initial_message}"
        message += "\n#{error_message}" if error_message
        message += "\n#{more_info}" if more_info
        message += '\n For more details on Orange Authentication errors see https://developer.orange.com/tech_guide/2-legged-oauth/'
        message + "\n\n"
      end
    end

    class ApiError < StandardError
      attr_reader :code, :message, :response, :status, :error_message, :description

      def initialize(message, response)
        @status = response.status
        body = JSON.parse(response.body)
        @code = body.fetch('code', nil)
        @error_message = body.fetch('message', nil)
        @description = body.fetch('description', nil)
        @message = format_message(message)
        @response = response
      end

      def to_s
        message
      end

      private

      def format_message(initial_message)
        message = "[HTTP #{status}] #{code} : #{initial_message}"
        message += "\n#{error_message}" if error_message
        message += "\n#{description}" if description
        message += '\n For more details on Orange Api errors see https://developer.orange.com/apis/sms-sn/api-reference'
        message + "\n\n"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
orange_sms-0.1.1 lib/orange_sms/error.rb
orange_sms-0.1.0 lib/orange_sms/error.rb