class LivePaper::Payoff
Constants
- TYPE
Attributes
data[RW]
type[RW]
url[RW]
Public Class Methods
api_url()
click to toggle source
# File lib/live_paper/payoff.rb, line 27 def self.api_url "#{LP_API_HOST}/api/v2/projects/#{$project_id}/payoffs" end
item_key()
click to toggle source
# File lib/live_paper/payoff.rb, line 23 def self.item_key :payoff end
list_key()
click to toggle source
# File lib/live_paper/payoff.rb, line 19 def self.list_key :payoffs end
Public Instance Methods
parse(data)
click to toggle source
# File lib/live_paper/payoff.rb, line 12 def parse(data) data = JSON.parse(data, symbolize_names: true)[self.class.item_key] assign_attributes(data) send(present?(data[:richPayoff]) ? :parse_richpayoff : :parse_webpayoff, data) self end
Private Instance Methods
create_body()
click to toggle source
# File lib/live_paper/payoff.rb, line 54 def create_body { payoff: case @type when TYPE[:WEB] create_webpayoff_body when TYPE[:RICH] create_richpayoff_body else raise ArgumentError, 'Type unknown.' end } end
create_richpayoff_body()
click to toggle source
# File lib/live_paper/payoff.rb, line 75 def create_richpayoff_body { name: @name, type: 'richPayoff', richPayoff: { version: 1, private: { :'content-type' => 'custom-base64', :data => Base64.encode64(@data.to_json) }, public: {url: @url} } } end
create_webpayoff_body()
click to toggle source
# File lib/live_paper/payoff.rb, line 67 def create_webpayoff_body { name: @name, type: 'url', url: @url } end
parse_richpayoff(data)
click to toggle source
# File lib/live_paper/payoff.rb, line 38 def parse_richpayoff(data) data = data[:richPayoff] @type = TYPE[:RICH] @url = data[:public][:url] @data = JSON.parse(Base64.decode64(data[:private][:data]), symbolize_names: true) rescue nil end
parse_webpayoff(data)
click to toggle source
# File lib/live_paper/payoff.rb, line 45 def parse_webpayoff(data) @type = TYPE[:WEB] @url = data[:url] end
update_body()
click to toggle source
# File lib/live_paper/payoff.rb, line 50 def update_body create_body end
validate_attributes!()
click to toggle source
# File lib/live_paper/payoff.rb, line 32 def validate_attributes! raise ArgumentError, 'Required Attributes needed: name, type' unless all_present? [@name, @type] raise ArgumentError, 'Required Attribute needed: url.' if @type == TYPE[:WEB] and !present? @url raise ArgumentError, 'Required Attribute needed: data.' if @type == TYPE[:RICH] and !present? @data end