2013-09-03 16:57:37 +02:00
|
|
|
require 'date'
|
|
|
|
|
2012-05-17 21:38:41 -03:00
|
|
|
module Biju
|
|
|
|
class Sms
|
2013-09-10 15:56:14 +02:00
|
|
|
attr_reader :id, :phone_number, :type_of_address, :message, :datetime
|
2012-05-17 21:38:41 -03:00
|
|
|
|
2013-09-06 17:32:09 +02:00
|
|
|
def self.from_pdu(string, id = nil)
|
2013-09-06 10:17:47 +02:00
|
|
|
sms_infos = PDU.decode(string)
|
2013-09-06 17:32:09 +02:00
|
|
|
new(id: id,
|
2013-09-09 15:50:27 +02:00
|
|
|
phone_number: sms_infos[:sender_number].decode,
|
|
|
|
type_of_address: sms_infos[:sender_number].type_of_address.to_sym,
|
2013-09-06 10:17:47 +02:00
|
|
|
datetime: sms_infos[:timestamp],
|
2013-09-09 15:50:27 +02:00
|
|
|
message: sms_infos[:user_data].decode)
|
2013-09-06 10:17:47 +02:00
|
|
|
end
|
|
|
|
|
2013-09-10 15:56:14 +02:00
|
|
|
def initialize(params = {})
|
2012-05-17 21:38:41 -03:00
|
|
|
params.each do |attr, value|
|
2013-09-10 15:56:14 +02:00
|
|
|
instance_variable_set(:"@#{attr}", value)
|
2012-05-17 21:38:41 -03:00
|
|
|
end if params
|
|
|
|
end
|
|
|
|
|
|
|
|
def to_s
|
2013-09-06 10:17:47 +02:00
|
|
|
"[#{id}] (#{phone_number}) #{datetime} '#{message}'"
|
|
|
|
end
|
|
|
|
|
|
|
|
def to_pdu
|
2013-09-09 15:50:27 +02:00
|
|
|
Biju::PDU.encode(phone_number, message, type_of_address: type_of_address)
|
2012-05-17 21:38:41 -03:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|