Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
reformatted reg_event, no other changes
ij committed Jun 29, 2022
1 parent 0161b74 commit c8bac97
Showing 1 changed file with 92 additions and 92 deletions.
184 changes: 92 additions & 92 deletions lib/sf/reg_event.rb
@@ -1,110 +1,110 @@
class Sf::RegEvent
include Sf::Base
attr_accessor :reg_event
# frozen_string_literal: true

FIELDS = ['Id', 'code__c', 'start_date__c', 'end_date__c', 'max_attendees__c',
'early_rate_deadline__c', 'regular_rate_deadline__c',
'cancellation_deadline__c', 'status__c', 'title__c']
module Sf
class RegEvent
include Sf::Base
attr_accessor :reg_event

FIELDS_SELECT_STR = FIELDS.join(', ')
def initialize(reg_event=nil)
@reg_event = reg_event.nil? ? Restforce::SObject.new(sobject_type: 'RegEvent__c') : reg_event
end

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

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

def update(attrs = {})
attrs['Id'] = self.Id
Sf.client.update("RegEvent__c", attrs)
end
FIELDS = %w[Id code__c start_date__c end_date__c max_attendees__c
early_rate_deadline__c regular_rate_deadline__c
cancellation_deadline__c status__c title__c].freeze

def self.find(id)
new Sf.client.find("RegEvent__c", id)
end
FIELDS_SELECT_STR = FIELDS.join(', ')
def initialize(reg_event = nil)
@reg_event = reg_event.nil? ? Restforce::SObject.new(sobject_type: 'RegEvent__c') : reg_event
end

def self.find_by_code(code)
found_event = where({code__c: code}).first
new Sf.client.find("RegEvent__c", found_event.Id) unless found_event.nil?
end
def method_missing(method_name, *args, &block)
@reg_event.send(method_name, *args, &block)
end

def self.where(args = {})
where = args.map {|k,v| "#{k} = \'#{v}\'"}.join(" and ")
sobjects = Sf.client.query("select #{FIELDS_SELECT_STR} from RegEvent__c where #{where}")
build_collection sobjects unless sobjects.blank?
end
def respond_to_missing?(method_name, include_private = false)
@reg_event.respond_to?(method_name, include_private) || super
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 update(attrs = {})
attrs['Id'] = self.Id
Sf.client.update('RegEvent__c', attrs)
end

def self.create_from_event(event)
return if event.nil? or event.id.nil? or !event.class.eql?(Event)
def self.find(id)
new Sf.client.find('RegEvent__c', id)
end

# aborts if it is already in SF
if !!event.sf_event_id and sf_event = self.find(event.sf_event_id)
event.errors.add(:base, "RegEvent with ID #{sf_event.Id} already exists.")
return
def self.find_by_code(code)
found_event = where({ code__c: code }).first
new Sf.client.find('RegEvent__c', found_event.Id) unless found_event.nil?
end
if !!event.code and sf_event = self.find_by_code(event.code)
event.errors.add(:base, "RegEvent with ID #{sf_event.Id} already exists.")
return

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

attrs = {}
self.event_mapping.each do |event_attr, sf_event_attr|
reg_event_value = event.send(event_attr)
reg_event_value = reg_event_value.iso8601 if reg_event_value.class.eql?(ActiveSupport::TimeWithZone)
attrs[sf_event_attr] = reg_event_value unless reg_event_value.nil?
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
attrs['Name'] = event.title
sf_reg_event_id = Sf.client.create("RegEvent__c", attrs)
event.sf_event_id = sf_reg_event_id
event.save
sf_reg_event = self.find(sf_reg_event_id)
self.new sf_reg_event
end

# updating contact id on all reg_items in the reg event
def update_contact_id_in_reg_items
rr = 'reg_registration_id__r'
sf_reg_items = Sf.client.query("select Id, Contact__c, #{rr}.Id, #{rr}.contact_id__c from RegItem__c where #{rr}.event_code__c = \'#{self.code__c}\'")
sf_reg_items.each do |item|
next unless item.Contact__c.nil?
attrs = {'Id' => item.Id, 'Contact__c' => item.reg_registration_id__r.contact_id__c}
Sf.client.update!("RegItem__c", attrs)
def self.create_from_event(event)
return if event.nil? || event.id.nil? || !event.instance_of?(Event)

# aborts if it is already in SF
if !event.sf_event_id.nil? && (sf_event = find(event.sf_event_id))
event.errors.add(:base, "RegEvent with ID #{sf_event.Id} already exists.")
return
end
if !event.code.nil? && (sf_event = find_by_code(event.code))
event.errors.add(:base, "RegEvent with ID #{sf_event.Id} already exists.")
return
end

attrs = {}
event_mapping.each do |event_attr, sf_event_attr|
reg_event_value = event.send(event_attr)
reg_event_value = reg_event_value.iso8601 if reg_event_value.instance_of?(ActiveSupport::TimeWithZone)
attrs[sf_event_attr] = reg_event_value unless reg_event_value.nil?
end
attrs['Name'] = event.title
sf_reg_event_id = Sf.client.create('RegEvent__c', attrs)
event.sf_event_id = sf_reg_event_id
event.save
sf_reg_event = find(sf_reg_event_id)
new sf_reg_event
end
end

# updating contact id on all reg_items in the reg event
def update_contact_id_in_reg_items
rr = 'reg_registration_id__r'
sf_reg_items = Sf.client.query("select Id, Contact__c, #{rr}.Id, #{rr}.contact_id__c from RegItem__c where #{rr}.event_code__c = \'#{code__c}\'")
sf_reg_items.each do |item|
next unless item.Contact__c.nil?

private

def self.event_mapping
{
'code' => 'code__c',
'start_date' => 'start_date__c',
'end_date' => 'end_date__c',
'early_rate_deadline' => 'early_rate_deadline__c',
'regular_rate_deadline' => 'regular_rate_deadline__c',
'cancellation_deadline' => 'cancellation_deadline__c',
'registration_closes_at' => 'registration_closes_at__c',
'registration_opens_at' => 'registration_opens_at__c',
'title' => 'title__c',
'description' => 'description__c',
'max_attendees' => 'max_attendees__c',
'event_home_url' => 'event_home_url__c',
'status' => 'status__c',
'updated_at' => 'updated_at__c',
'id' => 'reg_event_id__c'
}
end
attrs = { 'Id' => item.Id, 'Contact__c' => item.reg_registration_id__r.contact_id__c }
Sf.client.update!('RegItem__c', attrs)
end
end

def self.event_mapping
{
'code' => 'code__c',
'start_date' => 'start_date__c',
'end_date' => 'end_date__c',
'early_rate_deadline' => 'early_rate_deadline__c',
'regular_rate_deadline' => 'regular_rate_deadline__c',
'cancellation_deadline' => 'cancellation_deadline__c',
'registration_closes_at' => 'registration_closes_at__c',
'registration_opens_at' => 'registration_opens_at__c',
'title' => 'title__c',
'description' => 'description__c',
'max_attendees' => 'max_attendees__c',
'event_home_url' => 'event_home_url__c',
'status' => 'status__c',
'updated_at' => 'updated_at__c',
'id' => 'reg_event_id__c'
}
end
end
end

0 comments on commit c8bac97

Please sign in to comment.