Sha256: af29df06a3b7eb0396db5387bd61b9e4dd79f5043ae569cdac0fdbac9b784f8a

Contents?: true

Size: 1.29 KB

Versions: 2

Compression:

Stored size: 1.29 KB

Contents

# -*- coding: utf-8 -*-
module Smshelper
  module Api
    class  Webtext < Base
      base_uri "http://www.webtext.com"
      endpoint "api"

      def initialize(*args)
        config = args.shift
        add_query_options! :api_id => config.webtext[:uname], :api_pwd => config.webtext[:passwd]
        super
      end

      def send_message(message)
        uuid = @uuid.generate

        if message.utf_8
          message.to_hex_be
          q = {:unicode => '1', :hex => message.text}
        else
          q = {:txt => message.text}
        end

        options = {:dest => message.recipient, :tag => message.sender, :msgid => uuid}
        options = options.merge(@extra_options) unless @extra_options.nil?
        resp = (post "send_text.html", :extra_query => options.merge(q))
        process_response_code(resp.to_s) ? (@sent_message_ids << uuid; uuid) : (raise ErrorDuringSend, @response_code.webtext(resp))
        # :validity => '2'
      end

      def get_balance
        {'EUR' => (post "get_balance.html").to_s.split(':').last.strip}
      end

      def get_status(message_id)
        raise NotImplementedError, "Sms status checks unsupported by #{self.class.name}"
      end

      private
      def process_response_code(code)
        (code == '000') ? true : false
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
smshelper-0.2.4 lib/smshelper/api/webtext.rb
smshelper-0.2.3 lib/smshelper/api/webtext.rb