Class: Kapow::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/kapow/response.rb

Overview

A small class for parsing the response from the sms gateway.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sms, message) ⇒ Response

Returns a new instance of Response.



11
12
13
14
# File 'lib/kapow/response.rb', line 11

def initialize(sms, message)
  @sms     = sms
  @message = parse(message)
end

Instance Attribute Details

#messageObject (readonly)

Returns the value of attribute message.



16
17
18
# File 'lib/kapow/response.rb', line 16

def message
  @message
end

Instance Method Details

#parse(message) ⇒ Object

Parses the response body. Raises the appropriate error or returns true. Also updates the amount of available credit.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/kapow/response.rb', line 21

def parse(message)
  if message.is_a?(Net::HTTPSuccess || Net::HTTPRedirection)
    case message.body
    when "USERPASS"
      raise AuthenticationError
    when "NOCREDIT"
      raise NoCreditError
    when "ERROR"
      raise Error
    when /STATUS (.*)/ # This needs to change
      $1
    when /^OK (\d+)\s?(.*)?/
      Kapow::Credit.available = $1.to_i
      @sms.unique_id = $2 unless $2 == ""
    end
  else
    raise message.error!
  end
end