class Coolsms::Message
Constants
- INVERTED_STATUSES
- STATUSES
Attributes
send_api[R]
send_response[R]
Public Class Methods
new(attrs_hash = {})
click to toggle source
# File lib/coolsms/message.rb, line 15 def initialize(attrs_hash = {}) @attributes = {}.with_indifferent_access assign_data(attrs_hash) end
Public Instance Methods
accepted_at()
click to toggle source
# File lib/coolsms/message.rb, line 69 def accepted_at; self[:accepted_at] end
api()
click to toggle source
# File lib/coolsms/message.rb, line 25 def api return @api if @api raise Uninitialized, 'Message id not defined' if attributes[:id].blank? @api = Coolsms::RestApi::Sent.new @api.mid = id @api end
assign_data(data_hash)
click to toggle source
# File lib/coolsms/message.rb, line 48 def assign_data(data_hash) data_hash = data_hash.with_indifferent_access data_hash[:accepted_at] = Coolsms::TIMEZONE.parse(data_hash.delete(:accepted_time)) if data_hash[:accepted_time] data_hash[:sent_at] = Coolsms::TIMEZONE.parse(data_hash.delete(:sent_time)) if data_hash[:sent_time] data_hash[:scheduled_at] = Coolsms::TIMEZONE.parse(data_hash.delete(:scheduled_time)) if data_hash[:scheduled_time] data_hash[:status] = INVERTED_STATUSES[data_hash[:status]] attributes.update(data_hash) end
carrier()
click to toggle source
# File lib/coolsms/message.rb, line 76 def carrier; self[:carrier] end
from()
click to toggle source
# File lib/coolsms/message.rb, line 21 def from; attributes[:from] || Coolsms.default_from end
from=(val)
click to toggle source
# File lib/coolsms/message.rb, line 20 def from=(val); attributes[:from] = val end
group()
click to toggle source
# File lib/coolsms/message.rb, line 64 def group Coolsms::Group.new(group_id) end
group_id()
click to toggle source
# File lib/coolsms/message.rb, line 71 def group_id; self[:group_id] end
recipient_number()
click to toggle source
# File lib/coolsms/message.rb, line 70 def recipient_number; self[:recipient_number] end
result_code()
click to toggle source
# File lib/coolsms/message.rb, line 72 def result_code; self[:result_code] end
result_message()
click to toggle source
# File lib/coolsms/message.rb, line 73 def result_message; self[:result_message] end
retrieve()
click to toggle source
Calls superclass method
Coolsms::Base#retrieve
# File lib/coolsms/message.rb, line 57 def retrieve @response = api.call data = (@response.body[:data] && @response.body[:data].first) || {} assign_data(data) super end
scheduled_at()
click to toggle source
# File lib/coolsms/message.rb, line 77 def scheduled_at; self[:scheduled_at] end
send(*to)
click to toggle source
# File lib/coolsms/message.rb, line 33 def send(*to) raise EmptyMessage if @attributes[:text].blank? raise AlreadySent if @send_api || retrieved if self[:text].bytes.size <= 90 @send_api = Coolsms::RestApi::Send.new(self[:text], from ,to) else @send_api = Coolsms::RestApi::Send.new(self[:text], from, to) @send_api.subject = @attributes[:subject] @send_api.type = :LMS end @send_response = @send_api.call attributes[:group_id] = send_response.body['group_id'] @send_response end
sent_at()
click to toggle source
# File lib/coolsms/message.rb, line 74 def sent_at; self[:sent_at] end
status()
click to toggle source
# File lib/coolsms/message.rb, line 78 def status; self[:status] end
text()
click to toggle source
# File lib/coolsms/message.rb, line 75 def text; self[:text] end
text=(val)
click to toggle source
# File lib/coolsms/message.rb, line 23 def text=(val); attributes[:text] = val end
type()
click to toggle source
# File lib/coolsms/message.rb, line 68 def type; self[:type] end