Sha256: b06addad9ea6d8692af1f487cf2867105c391f33d4c99bfe8c3f49e07b51ce26

Contents?: true

Size: 1.23 KB

Versions: 13

Compression:

Stored size: 1.23 KB

Contents

require 'uri'
require 'httpi'

module Smess
  class HttpBase < Output
    include Smess::Logging

    def initialize(config)
      super
      HTTPI.log_level = :debug
    end


    def sender_id
      @sender_id || Smess.config.default_sender_id
    end

    private

    attr_reader :sms

    def from
      sms.originator || sender_id
    end

    def message_id
      @message_id ||= Digest::MD5.hexdigest "#{Time.now.strftime('%Y%m%d%H%M%S')}#{sms.to}-#{SecureRandom.hex(6)}"
    end

    def request
      @request ||= HTTPI::Request.new
    end

    def http_get(request)
      http_request(:get, request)
    end

    def http_post(request)
      http_request(:post, request)
    end

    def http_request(method, request)
      response = HTTPI.send(method, request)
      normal_result(response)
    rescue => e
      logger.warn response
      result_for_error(e)
    end

    def result_for_error(e)
      {
        response_code: '-1',
        response: {
          temporaryError: 'true',
          responseCode: '-1',
          responseText: e.message
        },
        data: result_data
      }
    end

    def result_data
      {
        to: sms.to,
        text: sms.message.strip_nongsm_chars,
        from: from
      }
    end

  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
smess-2.3.0 lib/smess/outputs/http_base.rb
smess-2.2.1 lib/smess/outputs/http_base.rb
smess-2.2.0 lib/smess/outputs/http_base.rb
smess-2.1.0 lib/smess/outputs/http_base.rb
smess-2.0.8 lib/smess/outputs/http_base.rb
smess-2.0.7 lib/smess/outputs/http_base.rb
smess-2.0.6 lib/smess/outputs/http_base.rb
smess-2.0.5 lib/smess/outputs/http_base.rb
smess-2.0.4 lib/smess/outputs/http_base.rb
smess-2.0.3 lib/smess/outputs/http_base.rb
smess-2.0.2 lib/smess/outputs/http_base.rb
smess-2.0.1 lib/smess/outputs/http_base.rb
smess-2.0 lib/smess/outputs/http_base.rb