Skip to content

Commit

Permalink
added meeting configurations
Browse files Browse the repository at this point in the history
  • Loading branch information
ij committed Jan 25, 2015
1 parent 954857a commit a433e1c
Show file tree
Hide file tree
Showing 10 changed files with 174 additions and 5 deletions.
3 changes: 3 additions & 0 deletions lib/sf.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
require "sf/contact_affiliation"
require "sf/reg_event"
require "sf/reg_meeting"
require "sf/reg_option"
require "sf/reg_rate"
require "sf/reg_registration"
require "sf/reg_item"
require "sf/reg_meeting_option_association.rb"
require "sf/session"
require "sf/session_type"
require "sf/track"
Expand Down
4 changes: 3 additions & 1 deletion lib/sf/contact.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ class Sf::Contact
'Title', 'Email', 'HasOptedOutOfEmail', 'Phone', 'MailingStreet',
'MailingCity', 'MailingState', 'MailingPostalCode', 'MailingCountry',
'Status__c', 'Functional_Title__c', 'Informal_Name__c',
'Meeting_Reg_Pre_Population_Opt_Out__c', 'Meeting_Reg_Hold__c']
'Meeting_Reg_Pre_Population_Opt_Out__c', 'Meeting_Reg_Hold__c',
'gs_executive__c', 'techex_executive__c', 'gender__c']
FIELDS_SELECT_STR = FIELDS.join(', ')

def initialize(contact=nil)
Expand Down Expand Up @@ -75,6 +76,7 @@ def sf_person_mapping
'first_name' => 'FirstName',
'last_name' => 'LastName',
'informal_name' => 'Informal_Name__c',
'gender' => 'gender__c',
'title' => 'Title',
'functional_title' => 'Functional_Title__c',
'email' => 'Email',
Expand Down
10 changes: 9 additions & 1 deletion lib/sf/reg_event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ class Sf::RegEvent
attr_accessor :reg_event

FIELDS = ['Id', 'code__c', 'start_date__c', 'end_date__c', 'max_attendees__c',
'early_rate_deadline__c', 'regular_rate_deadline__c', 'cancellation_deadline__c']
'early_rate_deadline__c', 'regular_rate_deadline__c',
'cancellation_deadline__c', 'status__c', 'title__c']

FIELDS_SELECT_STR = FIELDS.join(', ')
def initialize(reg_event=nil)
@reg_event = reg_event.nil? ? Restforce::SObject.new(sobject_type: 'RegEvent__c') : reg_event
Expand Down Expand Up @@ -37,6 +39,12 @@ def self.where(args = {})
build_collection sobjects unless sobjects.blank?
end

def self.by_codes(codes=[])
where = codes.map{|code| "code__c = \'#{code}\'"}.join(" or ")
sobjects = Sf.client.query("select #{FIELDS_SELECT_STR} from RegEvent__c where #{where}")
build_collection sobjects unless sobjects.blank?
end

def self.create_from_event(event)
return if event.nil? or event.id.nil? or !event.class.eql?(Event)

Expand Down
3 changes: 3 additions & 0 deletions lib/sf/reg_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ def reg_item_mapping
'reg_rate_description' => 'reg_rate_description__c',
'reg_rate_id' => 'reg_rate_id__c',
'seqn' => 'seqn__c',
'sf_reg_meeting_id' => 'reg_meeting_id__c',
'sf_reg_option_id' => 'reg_option_id__c',
'response' => 'response__c',
'created_at' => 'created_at__c'
}
end
Expand Down
2 changes: 1 addition & 1 deletion lib/sf/reg_meeting.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def respond_to_missing?(method_name, include_private = false)

def update(attrs = {})
attrs['Id'] = self.Id
Sf.client.update("RegMeeting__c", attrs)
Sf.client.update!("RegMeeting__c", attrs)
end

def self.find(id)
Expand Down
53 changes: 53 additions & 0 deletions lib/sf/reg_meeting_option_association.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
class Sf::RegMeetingOptionAssociation
include Sf::Base

def initialize(reg_meeting_option_association=nil)
@reg_meeting_option_association = reg_meeting_option_association.nil? ? Restforce::SObject.new(sobject_type: 'RegMeetingOptionAssociation__c') : reg_meeting_option_association
end

def method_missing(method_name, *args, &block)
@reg_meeting_option_association.send(method_name, *args, &block)
end

def respond_to_missing?(method_name, include_private = false)
@reg_meeting_option_association.respond_to?(method_name, include_private) || super
end

def update(attrs = {})
attrs['Id'] = self.Id
Sf.client.update("RegMeetingOptionAssociation__c", attrs)
end

def self.find(id)
new Sf.client.find("RegMeetingOptionAssociation__c", id)
end

def self.find_by_code(code)
found_meeting = where({code__c: code}).first
new Sf.client.find("RegMeetingOptionAssociation__c", found_meeting.Id) unless found_meeting.nil?
end

def self.find_all_by_event_id(event_id)
found_meeting_options = where({reg_event_id__c: event_id})
meeting_options = found_meeting_options.map do |meeting_option|
Sf.client.find("RegMeetingOptionAssociation__c", meeting_option.Id) unless meeting_option.nil?
end
build_collection meeting_options
end

def self.where(args = {})
where = args.map {|k,v| "#{k} = \'#{v}\'"}.join(" and ")
sobjects = Sf.client.query("select Id, Name from RegMeetingOptionAssociation__c where #{where}")
build_collection sobjects unless sobjects.blank?
end

def self.find_all_by_meeting_id(meeting_id)
found_meeting_options = where({reg_meeting_id__c: meeting_id})
meeting_options = found_meeting_options.map do |meeting_option|
Sf.client.find("RegMeetingOptionAssociation__c", meeting_option.Id) unless meeting_option.nil?
end
build_collection meeting_options
end

end

54 changes: 54 additions & 0 deletions lib/sf/reg_option.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
class Sf::RegOption
include Sf::Base

def initialize(reg_option=nil)
@reg_option = reg_option.nil? ? Restforce::SObject.new(sobject_type: 'RegOption__c') : reg_option
end

def method_missing(method_name, *args, &block)
@reg_option.send(method_name, *args, &block)
end

def respond_to_missing?(method_name, include_private = false)
@reg_option.respond_to?(method_name, include_private) || super
end

def update(attrs = {})
attrs['Id'] = self.Id
Sf.client.update("RegOption__c", attrs)
end

def self.find(id)
new Sf.client.find("RegOption__c", id)
end

def self.find_by_code(code)
found_option = where({code__c: code}).first
new Sf.client.find("RegOption__c", found_option.Id) unless found_option.nil?
end

def self.find_all_by_meeting_id(meeting_id)
found_meeting_options = Sf::RegMeetingOptionAssociation.find_all_by_meeting_id(meeting_id)
found_option_ids = found_meeting_options.map(&:reg_option_id__c)
options = found_option_ids.compact.map do |option_id|
Sf.client.find("RegOption__c", option_id)
end
build_collection options
end

def self.find_all_by_event_id(event_id)
found_option = where({reg_event_id__c: event_id})
option = found_option.map do |option|
Sf.client.find("RegOption__c", option.Id) unless option.nil?
end
build_collection option
end

def self.where(args = {})
where = args.map {|k,v| "#{k} = \'#{v}\'"}.join(" and ")
sobjects = Sf.client.query("select Id, Name from RegOption__c where #{where}")
build_collection sobjects unless sobjects.blank?
end

end

45 changes: 45 additions & 0 deletions lib/sf/reg_rate.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
class Sf::RegRate
include Sf::Base

def initialize(reg_rate=nil)
@reg_rate = reg_rate.nil? ? Restforce::SObject.new(sobject_type: 'RegRate__c') : reg_rate
end

def method_missing(method_name, *args, &block)
@reg_rate.send(method_name, *args, &block)
end

def respond_to_missing?(method_name, include_private = false)
@reg_rate.respond_to?(method_name, include_private) || super
end

def update(attrs = {})
attrs['Id'] = self.Id
Sf.client.update!("RegRate__c", attrs)
end

def self.find(id)
new Sf.client.find("RegRate__c", id)
end

def self.find_by_code(code)
found_rate = where({code__c: code}).first
new Sf.client.find("RegRate__c", found_rate.Id) unless found_rate.nil?
end

def self.find_all_by_meeting_id(meeting_id)
found_rates = where({reg_meeting_id__c: meeting_id})
rates = found_rates.map do |rate|
Sf.client.find("RegRate__c", rate.Id) unless rate.nil?
end
build_collection rates
end

def self.where(args = {})
where = args.map {|k,v| "#{k} = \'#{v}\'"}.join(" and ")
sobjects = Sf.client.query("select Id, Name from RegRate__c where #{where}")
build_collection sobjects unless sobjects.blank?
end

end

3 changes: 2 additions & 1 deletion lib/sf/reg_registration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ def registration_mapping
'receipt_id' => 'receipt_id__c',
'reference_id' => 'reference_id__c',
'balance' => 'balance__c',
'from_ip_address' => 'ip_address__c'
'from_ip_address' => 'ip_address__c',
'sf_reg_event_id' => 'reg_event_id__c'
}
end

Expand Down
2 changes: 1 addition & 1 deletion lib/sf/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Sf
VERSION = "0.1.17"
VERSION = "0.1.18"
end

0 comments on commit a433e1c

Please sign in to comment.