class SMSGateway::Message

Constants

API_ENDPOINT

Attributes

created_at[RW]
device_id[RW]
id[RW]
log[RW]
message[RW]
phone_number[RW]
status[RW]
updated_at[RW]

Public Class Methods

all() click to toggle source
# File lib/smsgateway.rb, line 95
def self.all
  result = nil
  params = { filters: [] }.to_json
  response = API.post(API_ENDPOINT + 'search', params)
  if response.code == '200'
    res = JSON.parse(response.body)['results']
    converted_objects = []
    res.each do |obj|
      converted_objects << Message.new(obj['device_id'], obj['phone_number'], obj['message'], obj['id'], obj['status'], obj['created_at'], obj['updated_at'], obj['log'])
    end
    result = converted_objects
  end

  result
end
find(id) click to toggle source
# File lib/smsgateway.rb, line 111
def self.find(id)
  result = nil
  response = API.get(API_ENDPOINT, id)

  if response.code == '200'
    res = JSON.parse(response.body)
    result = Message.new(res['device_id'], res['phone_number'], res['message'], res['id'], res['status'], res['created_at'], res['updated_at'], res['log'])
  end

  result
end
new(device_id, phone_number, message, id = nil, status = nil, created_at = nil, updated_at = nil, log = nil) click to toggle source
# File lib/smsgateway.rb, line 18
def initialize(device_id, phone_number, message, id = nil, status = nil, created_at = nil, updated_at = nil, log = nil)  
  @id           = id
  @device_id    = device_id  
  @phone_number = phone_number  
  @message      = message  
  @status       = status
  @updated_at   = updated_at
  @created_at   = created_at
  @log          = log
end
where(params) click to toggle source
# File lib/smsgateway.rb, line 71
def self.where(params)
  result = nil
  search_params = []
  tokens = params.split('AND')
  tokens.each do |tkn|
    tkn = tkn.split('=')
    params = { field: tkn[0].strip!, operator: '=', value: tkn[1].delete("'").strip!}
    search_params << params
  end

  params = { filters: [ search_params ], order_by: [ { field: 'created_at', direction: 'desc'}, limit: 5, offset: 5]  }.to_json
  response = API.post(API_ENDPOINT + 'search', params)
  if response.code == '200'
    res = JSON.parse(response.body)['results']
    converted_objects = []
    res.each do |obj|
      converted_objects << Message.new(obj['device_id'], obj['phone_number'], obj['message'], obj['id'], obj['status'], obj['created_at'], obj['updated_at'], obj['log'])
    end
    result = converted_objects
  end

  result
end

Public Instance Methods

cancel() click to toggle source
# File lib/smsgateway.rb, line 50
def cancel
  result = nil
  params = { id: @id }.to_json

  response = API.post(API_ENDPOINT + 'cancel', params)
  if response.code == '200'
    res = JSON.parse(response.body)
    @id           = res[0]['id']
    @device_id    = res[0]['device_id']  
    @phone_number = res[0]['phone_number']  
    @message      = res[0]['message']  
    @status       = res[0]['status']
    @updated_at   = res[0]['updated_at']
    @created_at   = res[0]['created_at']
    @log          = res[0]['log']
    result        = self
  end

  result
end
send() click to toggle source
# File lib/smsgateway.rb, line 29
def send
  result = nil
  params = { device_id: @device_id, phone_number: @phone_number, message: @message }.to_json

  response = API.post(API_ENDPOINT + 'send', params)
  if response.code == '200'
    res = JSON.parse(response.body)
    @id           = res[0]['id']
    @device_id    = res[0]['device_id']  
    @phone_number = res[0]['phone_number']  
    @message      = res[0]['message']  
    @status       = res[0]['status']
    @updated_at   = res[0]['updated_at']
    @created_at   = res[0]['created_at']
    @log          = res[0]['log']
    result        = self
  end

  result
end