class SMSGateway::Contact

Constants

API_ENDPOINT

Attributes

id[RW]
name[RW]
phone_numbers[RW]

Public Class Methods

all() click to toggle source
# File lib/smsgateway.rb, line 249
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 << Contact.new(obj['name'], obj['phone_numbers'], obj['id'])
    end
    result = converted_objects
  end

  result
end
find(id) click to toggle source
# File lib/smsgateway.rb, line 214
def self.find(id)
  result = nil
  response = API.get(API_ENDPOINT + '/', id)
  if response.code == '200'
    res = JSON.parse(response.body)
    result = Contact.new(res['name'], res['phone_numbers'], res['id'])
  end

  result
end
new(name, phone_numbers, id = nil) click to toggle source
# File lib/smsgateway.rb, line 194
def initialize(name, phone_numbers, id = nil)  
  @id = id
  @name = name  
  @phone_numbers = phone_numbers  
end
where(params) click to toggle source
# File lib/smsgateway.rb, line 225
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: 'name', 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 << Contact.new(obj['name'], obj['phone_numbers'], obj['id'])
    end
    result = converted_objects
  end

  result
end

Public Instance Methods

save() click to toggle source
# File lib/smsgateway.rb, line 200
def save
  params = { name: @name, phone_numbers: @phone_numbers }.to_json
  response = API.post(API_ENDPOINT, params)
  if response.code == '200'
    res = JSON.parse(response.body)
    @id = res[0]['id']
    @name = res[0]['name']  
    @phone_numbers = res[0]['phone_numbers']  
    result = self
  end

  result
end
update() click to toggle source
# File lib/smsgateway.rb, line 265
def update
  params = { name: @name, phone_numbers: @phone_numbers }.to_json
  response = API.put(API_ENDPOINT + "/#{@id}", params)
  if response.code == '200'
    res = JSON.parse(response.body)
    @id = res['id']
    @name = res['name']  
    @phone_numbers = res['phone_numbers']  
    result = self
  end

  result
end