Class: Esendex::Client
Constant Summary collapse
- INBOX_SERVICE_WSDL =
'https://www.esendex.com/secure/messenger/soap/InboxService.asmx?wsdl'- SEND_SERVICE_WSDL =
'https://www.esendex.com/secure/messenger/soap/SendService.asmx?wsdl'- ACCOUNT_SERVICE_WSDL =
'https://www.esendex.com/secure/messenger/soap/AccountService.asmx?wsdl'
Instance Attribute Summary collapse
-
#account_reference ⇒ Object
Returns the value of attribute account_reference.
-
#password ⇒ Object
Returns the value of attribute password.
-
#sent_message_ids ⇒ Object
readonly
Returns the value of attribute sent_message_ids.
-
#sent_message_statuses ⇒ Object
readonly
Returns the value of attribute sent_message_statuses.
-
#username ⇒ Object
Returns the value of attribute username.
Instance Method Summary collapse
- #get_credit ⇒ Object
- #get_inbox_messages ⇒ Object
- #get_status(*message_id) ⇒ Object
-
#initialize(*args) ⇒ Client
constructor
A new instance of Client.
- #send_message(recipient, text, originator, validityperiod) ⇒ Object
Constructor Details
#initialize(*args) ⇒ Client
Returns a new instance of Client.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/esendex4soap.rb', line 52 def initialize(*args) @username = args.shift @password = args.shift @account_reference = args.shift # @detectlanguage_api_key, @alchemyapi_api_key = args.shift, args.shift @sent_message_ids, @sent_message_statuses = [], {} @language = LanguageTools::DetectLanguageDotCom.new(args.shift) Savon.configure do |config| config.raise_errors = true config.log = false config.log_level = :error HTTPI.log = false end @log = Logger.new "#{self.class.name}" @log.outputters = Outputter.stdout @log.level = DEBUG #ERROR @message_kind = String.new end |
Instance Attribute Details
#account_reference ⇒ Object
Returns the value of attribute account_reference.
49 50 51 |
# File 'lib/esendex4soap.rb', line 49 def account_reference @account_reference end |
#password ⇒ Object
Returns the value of attribute password.
49 50 51 |
# File 'lib/esendex4soap.rb', line 49 def password @password end |
#sent_message_ids ⇒ Object (readonly)
Returns the value of attribute sent_message_ids.
50 51 52 |
# File 'lib/esendex4soap.rb', line 50 def @sent_message_ids end |
#sent_message_statuses ⇒ Object (readonly)
Returns the value of attribute sent_message_statuses.
50 51 52 |
# File 'lib/esendex4soap.rb', line 50 def @sent_message_statuses end |
#username ⇒ Object
Returns the value of attribute username.
49 50 51 |
# File 'lib/esendex4soap.rb', line 49 def username @username end |
Instance Method Details
#get_credit ⇒ Object
104 105 106 107 108 109 110 111 112 |
# File 'lib/esendex4soap.rb', line 104 def get_credit client = Savon::Client.new(ACCOUNT_SERVICE_WSDL) #http://jira.codehaus.org/browse/JRUBY-5529 - jruby-openssl in --1.9 jruby mode client.http.auth.ssl.verify_mode=(:none) resp = client.request :com, :get_message_limit do |soap| soap.header["com:MessengerHeader"] = {"com:Username" => @username, "com:Password" => @password, "com:Account" => @account_reference} end resp.to_hash[:get_message_limit_response][:get_message_limit_result].to_s end |
#get_inbox_messages ⇒ Object
94 95 96 97 98 99 100 101 102 |
# File 'lib/esendex4soap.rb', line 94 def client = Savon::Client.new(INBOX_SERVICE_WSDL) #http://jira.codehaus.org/browse/JRUBY-5529 - jruby-openssl in --1.9 jruby mode client.http.auth.ssl.verify_mode=(:none) resp = client.request :com, :get_messages do |soap| soap.header["com:MessengerHeader"] = {"com:Username" => @username, "com:Password" => @password, "com:Account" => @account_reference} end resp[:get_messages_response][:get_messages_result][:message] end |
#get_status(*message_id) ⇒ Object
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/esendex4soap.rb', line 114 def get_status(*) connect unless @client if .size > 1 .each do |id| resp = @client.request :com, :get_message_status do |soap| soap.header["com:MessengerHeader"] = {"com:Username" => @username, "com:Password" => @password, "com:Account" => @account_reference} soap.body = {"com:id" => id.to_s} end @sent_message_statuses[id] = resp.to_hash[:get_message_status_response][:get_message_status_result] end else resp = @client.request :com, :get_message_status do |soap| soap.header["com:MessengerHeader"] = {"com:Username" => @username, "com:Password" => @password, "com:Account" => @account_reference} soap.body = {"com:id" => .first} end resp.to_hash[:get_message_status_response][:get_message_status_result] end end |
#send_message(recipient, text, originator, validityperiod) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/esendex4soap.rb', line 76 def (recipient, text, originator, validityperiod) @log.debug "TO:#{recipient} text size:#{text.size} in #{@language.detect(text)} language" #TODO: handle other languages as well unless @language.detect(text) == 'ru' sms_parts = text.scan(/.{1,160}/mu) @log.debug "#{text[sms_parts.to_s.size..text.size]}" @message_kind = 'Text' @log.debug "#{@message_kind}:#{text.scan(/./mu)} = #{text.size}. #{sms_parts.size} part/s." sms(recipient, sms_parts, originator, validityperiod) else sms_parts = text.scan(/.{1,70}/mu) @log.debug "#{text[sms_parts.to_s.size..text.size]}" @message_kind = 'Unicode' @log.debug "#{@message_kind}:#{text.scan(/./mu)} != #{text.size}. #{sms_parts.size} part/s." sms(recipient, sms_parts, originator, validityperiod) end end |