Class: Esendex::Account

Inherits:
Object
  • Object
show all
Defined in:
lib/esendex/account.rb

Constant Summary collapse

DEFAULT_DATE_OFFSET =
90

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(account_reference = Esendex.account_reference) ⇒ Account

Returns a new instance of Account.



9
10
11
# File 'lib/esendex/account.rb', line 9

def initialize( = Esendex.)
  @reference = 
end

Instance Attribute Details

#referenceObject

Returns the value of attribute reference.



7
8
9
# File 'lib/esendex/account.rb', line 7

def reference
  @reference
end

Instance Method Details

#api_connectionObject



13
14
15
# File 'lib/esendex/account.rb', line 13

def api_connection
  @api_connection ||= ApiConnection.new
end

#messages_remainingObject



17
18
19
20
21
22
23
# File 'lib/esendex/account.rb', line 17

def messages_remaining
  response = api_connection.get "/v1.0/accounts"
  doc = Nokogiri::XML(response.body)
  node = doc.at_xpath("//api:account[api:reference='#{@reference}']/api:messagesremaining", 'api' => Esendex::API_NAMESPACE)
  raise AccountReferenceError.new if node.nil?
  node.content.to_i
end

#send_message(args = {}) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
30
# File 'lib/esendex/account.rb', line 25

def send_message(args={})
  raise ArgumentError.new(":to required") unless args[:to]
  raise ArgumentError.new(":body required") unless args[:body]

  send_messages [Message.new(args[:to], args[:body], args[:from])]
end

#send_messages(messages) ⇒ Object



32
33
34
35
36
# File 'lib/esendex/account.rb', line 32

def send_messages(messages)
  batch_submission = MessageBatchSubmission.new(@reference, messages)
  response = api_connection.post("/v1.0/messagedispatcher", batch_submission.to_s)
  DispatcherResult.from_xml response.body
end

#sent_messages(args = {}) ⇒ Object



38
39
40
41
42
# File 'lib/esendex/account.rb', line 38

def sent_messages(args={})
  SentMessageClient
    .new(api_connection)
    .get_messages(args.merge(account_reference: reference))
end