Sha256: 8f95e786e8987d06e3c9aa03bb0e797d53100096e0f71052481098de0b39bdf8

Contents?: true

Size: 1.13 KB

Versions: 3

Compression:

Stored size: 1.13 KB

Contents

module SmsBroker
  module Client
    module Response
      class TwilioError < Error
        SENDER_ID_NOT_SUPPORTED = '21212'.freeze

        def initialize(twilio_response)
          super :twilio, twilio_response, serialize(twilio_response)
        end

        private

        def serialize(twilio_response)
          if twilio_response.is_a?(::Twilio::REST::RequestError)
            serialize_exeception_errors(twilio_response)
          else
            serialize_response_error(twilio_response)
          end
        end

        def serialize_response_error(response)
          errors = {
            response.error_code.to_s => [response.error_message]
          }

          if response.error_code.to_s == SENDER_ID_NOT_SUPPORTED
            errors['sender_id'] = ['is invalid']
          end

          errors
        end

        def serialize_exeception_errors(exception)
          errors = {
            exception.code.to_s => [exception.message]
          }

          if exception.code.to_s == SENDER_ID_NOT_SUPPORTED
            errors['sender_id'] = ['is invalid']
          end

          errors
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sms_broker-1.0.4 lib/sms_broker/client/response/twilio_error.rb
sms_broker-1.0.3 lib/sms_broker/client/response/twilio_error.rb
sms_broker-1.0.2 lib/sms_broker/client/response/twilio_error.rb