class Fosbury::Client

Public Class Methods

new() click to toggle source
# File lib/fosbury/client.rb, line 9
def initialize
  @endpoint = Fosbury.endpoint || "https://app.fosbury.co/api/v1/"
end

Public Instance Methods

archive_pass(pass_id) click to toggle source
# File lib/fosbury/client.rb, line 85
def archive_pass pass_id
  post "#{@endpoint}passes/#{pass_id}/archive"
end
create_campaign(template_id, options={}) click to toggle source
# File lib/fosbury/client.rb, line 44
def create_campaign template_id, options={}
  options[:template_id] = template_id
  post "#{@endpoint}campaigns", options
end
create_campaign_backfield(campaign_id, title, description) click to toggle source
# File lib/fosbury/client.rb, line 120
def create_campaign_backfield campaign_id, title, description
  raise "Please provide a campaign_id" if campaign_id.nil?
  options = { title: title, description: description }
  post "#{@endpoint}campaigns/#{campaign_id}/backfields", options
end
create_campaign_beacon(campaign_id, proximity_uuid, relevant_text, major=nil, minor=nil) click to toggle source
# File lib/fosbury/client.rb, line 137
def create_campaign_beacon campaign_id, proximity_uuid, relevant_text, major=nil, minor=nil
  raise "Please provide a campaign_id" if campaign_id.nil?
  options = { campaign_id: campaign_id, proximity_uuid: proximity_uuid, relevant_text: relevant_text}
  options[:major] = major if !major.nil?
  options[:minor] = minor if !minor.nil?
  post "#{@endpoint}campaigns/#{campaign_id}/ibeacons", options
end
create_campaign_location(campaign_id, lat, long, name, relevant_text, address='') click to toggle source
# File lib/fosbury/client.rb, line 103
def create_campaign_location campaign_id, lat, long, name, relevant_text, address=''
  raise "Please provide a campaign_id" if campaign_id.nil?
  options = { campaign_id: campaign_id, lat: lat, long: long, name: name, relevant_text: relevant_text, address: address}
  post "#{@endpoint}campaigns/#{campaign_id}/locations", options
end
create_pass(campaign_id, options={}) click to toggle source
# File lib/fosbury/client.rb, line 49
def create_pass campaign_id, options={}
  raise "Please provide a campaign_id" if campaign_id.nil?
  options[:campaign_id] = campaign_id
  post "#{@endpoint}passes", options
end
create_program_backfield(program_id, title, description) click to toggle source
# File lib/fosbury/client.rb, line 231
def create_program_backfield program_id, title, description
  raise "Please provide a program_id" if program_id.nil?
  options = { title: title, description: description }
  post "#{@endpoint}programs/#{program_id}/backfields", options
end
create_program_beacon(program_id, proximity_uuid, relevant_text, major=nil, minor=nil) click to toggle source
# File lib/fosbury/client.rb, line 248
def create_program_beacon program_id, proximity_uuid, relevant_text, major=nil, minor=nil
  raise "Please provide a program_id" if program_id.nil?
  options = { program_id: program_id, proximity_uuid: proximity_uuid, relevant_text: relevant_text}
  options[:major] = major if !major.nil?
  options[:minor] = minor if !minor.nil?
  post "#{@endpoint}programs/#{program_id}/ibeacons", options
end
create_program_location(program_id, lat, long, name, address='') click to toggle source
# File lib/fosbury/client.rb, line 214
def create_program_location program_id, lat, long, name, address=''
  raise "Please provide a program_id" if program_id.nil?
  options = { program_id: program_id, lat: lat, long: long, name: name, address: address }
  post "#{@endpoint}programs/#{program_id}/locations", options
end
create_program_member(program_id, customer_number, first_name, last_name) click to toggle source
# File lib/fosbury/client.rb, line 180
def create_program_member program_id, customer_number, first_name, last_name
  raise "Please provide a program_id" if program_id.nil?
  raise "Please provide a customer_number" if customer_number.nil?
  raise "Please provide a first_name" if first_name.nil?
  raise "Please provide a last_name" if last_name.nil?

  options = { customer_number: customer_number, first_name: first_name, last_name: last_name}

  post "#{@endpoint}programs/#{program_id}/members", options
end
create_template(name, style, options={}) click to toggle source
# File lib/fosbury/client.rb, line 37
def create_template name, style, options={}
  options[:name] = name
  options[:style] = style

  post "#{@endpoint}templates", options
end
delete_campaign(campaign_id) click to toggle source
# File lib/fosbury/client.rb, line 73
def delete_campaign campaign_id
  delete "#{@endpoint}campaigns/#{campaign_id}"
end
delete_campaign_backfield(campaign_id, backfield_id) click to toggle source
# File lib/fosbury/client.rb, line 126
def delete_campaign_backfield campaign_id, backfield_id
  raise "Please provide a campaign_id" if campaign_id.nil?
  raise "Please provide a backfield_id" if backfield_id.nil?
  delete "#{@endpoint}/campaigns/#{campaign_id}/backfields/#{backfield_id}"
end
delete_campaign_beacon(campaign_id, beacon_id) click to toggle source
# File lib/fosbury/client.rb, line 145
def delete_campaign_beacon campaign_id, beacon_id
  raise "Please provide a campaign_id" if campaign_id.nil?
  raise "Please provide a beacon_id" if beacon_id.nil?
  delete "#{@endpoint}/campaigns/#{campaign_id}/ibeacons/#{beacon_id}"
end
delete_campaign_location(campaign_id, location_id) click to toggle source
# File lib/fosbury/client.rb, line 109
def delete_campaign_location campaign_id, location_id
  raise "Please provide a campaign_id" if campaign_id.nil?
  raise "Please provide a location_id" if location_id.nil?
  delete "#{@endpoint}/campaigns/#{campaign_id}/locations/#{location_id}"
end
delete_pass(pass_id) click to toggle source
# File lib/fosbury/client.rb, line 77
def delete_pass pass_id
  delete "#{@endpoint}passes/#{pass_id}"
end
delete_program_backfield(program_id, backfield_id) click to toggle source
# File lib/fosbury/client.rb, line 237
def delete_program_backfield program_id, backfield_id
  raise "Please provide a program_id" if program_id.nil?
  raise "Please provide a backfield_id" if backfield_id.nil?
  delete "#{@endpoint}/programs/#{program_id}/backfields/#{backfield_id}"
end
delete_program_beacon(program_id, beacon_id) click to toggle source
# File lib/fosbury/client.rb, line 256
def delete_program_beacon program_id, beacon_id
  raise "Please provide a program_id" if program_id.nil?
  raise "Please provide a beacon_id" if beacon_id.nil?
  delete "#{@endpoint}/programs/#{program_id}/ibeacons/#{beacon_id}"
end
delete_program_location(program_id, location_id) click to toggle source
# File lib/fosbury/client.rb, line 220
def delete_program_location program_id, location_id
  raise "Please provide a program_id" if program_id.nil?
  raise "Please provide a location_id" if location_id.nil?
  delete "#{@endpoint}/programs/#{program_id}/locations/#{location_id}"
end
delete_program_member(program_id, member_id) click to toggle source
# File lib/fosbury/client.rb, line 203
def delete_program_member program_id, member_id
  raise "Please provide a program_id" if program_id.nil?
  raise "Please provide a member_id" if member_id.nil?
  delete "#{@endpoint}programs/#{program_id}/members/#{member_id}"
end
delete_template(teplate_id) click to toggle source
# File lib/fosbury/client.rb, line 69
def delete_template teplate_id
  delete "#{@endpoint}tempates/#{template_id}"
end
distribute_campaign(campaign_id) click to toggle source
# File lib/fosbury/client.rb, line 93
def distribute_campaign campaign_id
  raise "Please provide a campaign_id" if campaign_id.nil?
  post "#{@endpoint}campaigns/#{campaign_id}/distribute"
end
get_campaign(id) click to toggle source
# File lib/fosbury/client.rb, line 29
def get_campaign id
  get "#{@endpoint}campaigns/#{id}"
end
get_campaign_backfields(campaign_id) click to toggle source
# File lib/fosbury/client.rb, line 115
def get_campaign_backfields campaign_id
  raise "Please provide a campaign_id" if campaign_id.nil?
  get "#{@endpoint}/campaigns/#{campaign_id}/backfields"
end
get_campaign_beacons(campaign_id) click to toggle source
# File lib/fosbury/client.rb, line 132
def get_campaign_beacons campaign_id
  raise "Please provide a campaign_id" if campaign_id.nil?
  get "#{@endpoint}/campaigns/#{campaign_id}/ibeacons"
end
get_campaign_locations(campaign_id) click to toggle source
# File lib/fosbury/client.rb, line 98
def get_campaign_locations campaign_id
  raise "Please provide a campaign_id" if campaign_id.nil?
  get "#{@endpoint}/campaigns/#{campaign_id}/locations"
end
get_campaigns() click to toggle source
# File lib/fosbury/client.rb, line 17
def get_campaigns
  get "#{@endpoint}campaigns"
end
get_pass(id) click to toggle source
# File lib/fosbury/client.rb, line 33
def get_pass id
  get "#{@endpoint}passes/#{id}"
end
get_passes() click to toggle source
# File lib/fosbury/client.rb, line 21
def get_passes
  get "#{@endpoint}passes"
end
get_program(id) click to toggle source
# File lib/fosbury/client.rb, line 155
def get_program id
  get "#{@endpoint}programs/#{id}"
end
get_program_backfields(program_id) click to toggle source
# File lib/fosbury/client.rb, line 226
def get_program_backfields program_id
  raise "Please provide a program_id" if program_id.nil?
  get "#{@endpoint}/programs/#{program_id}/backfields"
end
get_program_beacons(program_id) click to toggle source
# File lib/fosbury/client.rb, line 243
def get_program_beacons program_id
  raise "Please provide a program_id" if program_id.nil?
  get "#{@endpoint}/programs/#{program_id}/ibeacons"
end
get_program_locations(program_id) click to toggle source
# File lib/fosbury/client.rb, line 209
def get_program_locations program_id
  raise "Please provide a program_id" if program_id.nil?
  get "#{@endpoint}/programs/#{program_id}/locations"
end
get_program_member(program_id, member_id) click to toggle source
# File lib/fosbury/client.rb, line 174
def get_program_member program_id, member_id
  raise "Please provide a program_id" if program_id.nil?
  raise "Please provide a member_id" if member_id.nil?
  get "#{@endpoint}programs/#{program_id}/members/#{member_id}"
end
get_program_members(program_id) click to toggle source
# File lib/fosbury/client.rb, line 169
def get_program_members program_id
  raise "Please provide a program_id" if program_id.nil?
  get "#{@endpoint}programs/#{program_id}/members"
end
get_programs() click to toggle source
# File lib/fosbury/client.rb, line 151
def get_programs
  get "#{@endpoint}programs"
end
get_template(id) click to toggle source
# File lib/fosbury/client.rb, line 25
def get_template id
  get "#{@endpoint}templates/#{id}"
end
get_templates() click to toggle source
# File lib/fosbury/client.rb, line 13
def get_templates
  get "#{@endpoint}templates"
end
push_pass(pass_id, options={}) click to toggle source
# File lib/fosbury/client.rb, line 81
def push_pass pass_id, options={}
  put "#{@endpoint}passes/#{pass_id}/push", options
end
push_program(program_id, options={}) click to toggle source
# File lib/fosbury/client.rb, line 164
def push_program program_id, options={}
  raise "Please provide a program_id" if program_id.nil?
  post "#{@endpoint}programs/#{program_id}/push_message", options
end
redeem_pass(pass_id) click to toggle source
# File lib/fosbury/client.rb, line 89
def redeem_pass pass_id
  post "#{@endpoint}passes/#{pass_id}/redeem"
end
update_campaign(campaign_id, options={}) click to toggle source
# File lib/fosbury/client.rb, line 60
def update_campaign campaign_id, options={}
  raise "Please provide a campaign_id" if campaign_id.nil?
  put "#{@endpoint}campaigns/#{campaign_id}", options
end
update_pass(pass_id, options={}) click to toggle source
# File lib/fosbury/client.rb, line 65
def update_pass pass_id, options={}
  put "#{@endpoint}passes/#{pass_id}", options
end
update_program(program_id, options={}) click to toggle source
# File lib/fosbury/client.rb, line 159
def update_program program_id, options={}
  raise "Please provide a program_id" if program_id.nil?
  put "#{@endpoint}programs/#{campaign_id}", options
end
update_program_member(program_id, member_id, customer_number, first_name, last_name, email=nil) click to toggle source
# File lib/fosbury/client.rb, line 191
def update_program_member program_id, member_id, customer_number, first_name, last_name, email=nil
  raise "Please provide a program_id" if program_id.nil?
  raise "Please provide a member_id" if member_id.nil?
  raise "Please provide a customer_number" if customer_number.nil?
  raise "Please provide a first_name" if first_name.nil?
  raise "Please provide a last_name" if last_name.nil?

  options = { customer_number: customer_number, first_name: first_name, last_name: last_name, email: email}

  put "#{@endpoint}programs/#{program_id}/members/#{member_id}", options
end
update_template(template_id, options={}) click to toggle source
# File lib/fosbury/client.rb, line 55
def update_template template_id, options={}
  raise "Please provide a template_id" if template_id.nil?
  put "#{@endpoint}tempates/#{template_id}", options
end

Private Instance Methods

delete(url) click to toggle source
# File lib/fosbury/client.rb, line 279
def delete url
  response = RestClient.delete url, get_headers 
  parse(response)
end
get(url) click to toggle source
# File lib/fosbury/client.rb, line 264
def get url
  response = RestClient.get url, get_headers
  parse(response.to_s)
end
get_headers() click to toggle source
# File lib/fosbury/client.rb, line 289
def get_headers
  raise "No authentication token provided. Use Fosbury.authentication_token = 'yourtoken' first" if Fosbury.authentication_token.nil?
  {'X-Fosbury-Token' => Fosbury.authentication_token}
end
parse(json_str) click to toggle source
# File lib/fosbury/client.rb, line 284
def parse json_str
  return nil if json_str.empty?
  JSON.parse(json_str)
end
post(url, payload='') click to toggle source
# File lib/fosbury/client.rb, line 269
def post url, payload=''
  response = RestClient.post url, payload, get_headers
  parse(response.to_s)
end
put(url, payload='') click to toggle source
# File lib/fosbury/client.rb, line 274
def put url, payload=''
  response = RestClient.put url, payload, get_headers
  parse(response.to_s)
end