Sha256: 3c65d30e20045643c7f3bc4f62da18144c0134130be01896a45b60fe0a60de32

Contents?: true

Size: 1.38 KB

Versions: 1

Compression:

Stored size: 1.38 KB

Contents

require 'kotsms2/version'
require 'kotsms2/network'
require 'kotsms2/exception'
require 'kotsms2/formatter'

module Kotsms2
  class Client
    include Kotsms2::Network
    include Kotsms2::Formatter

    def initialize(options={})
      @user_agent = options.fetch(:agent) { "kotsms2/#{VERSION}" }
      @api_host   = options.fetch(:host) { 'api.kotsms.com.tw' }
      @username   = options.fetch(:username) { ENV.fetch('KOTSMS_USERNAME') }
      @password   = options.fetch(:password) { ENV.fetch('KOTSMS_PASSWORD') }
    end

    def account_is_available
      balance_info = get_balance
      balance_info[:message_quota] > 0 && balance_info[:access_success]
    end

    def send_message(options={})
      options[:to] ||= nil
      options[:heavy_loading] ||= false

      options[:content] = options[:content].to_s
      options[:at] = format_time_string(options[:at])
      options[:at] = 0 if options[:at].nil? # 據 Kotsms 文件指出,如果要更即時,可以指定為 0,比不給參數還快

      api_path = '/kotsmsapi-1.php' 
      api_path = '/kotsmsapi-2.php' if options[:heavy_loading]

      response = get(@api_host, api_path, dstaddr: options[:to], smbody: to_big5(options[:content]), dlvtime: options[:at])

      format_send_message_info(response)
    end

    def get_balance
      response = get(@api_host, '/memberpoint.php')

      format_balance_info(response)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kotsms2-1.0.1 lib/kotsms2.rb