diff --git a/lib/sf/session.rb b/lib/sf/session.rb index 7610ca4..ee7db4c 100644 --- a/lib/sf/session.rb +++ b/lib/sf/session.rb @@ -31,34 +31,34 @@ def proposal_attrs attrs['submitter_phone__c'] = self.proposal.submitter_phone attrs['cms_proposal_id__c'] = self.proposal.id if session_type_id = self.proposal.session_type_id - sf_session_type = Sf::SessionType.find_by(reg_event__c: sf_event.Id, cms_session_type_id__c: session_type_id) - attrs['session_type__c'] = sf_session_type.Id unless sf_session_type.blank? + sf_session_type = Sf::SessionType.find_by(reg_event__c: sf_event.Id, cms_session_type_id__c: session_type_id) + attrs['session_type__c'] = sf_session_type.Id unless sf_session_type.blank? end if primary_track_id = self.proposal.primary_track_id sf_primary_track = Sf::Track.find_by(reg_event_id__c: sf_event.Id, cms_track_id__c: primary_track_id) - attrs['primary_track_id__c'] = sf_primary_track.Id unless sf_primary_track.blank? + attrs['primary_track_id__c'] = sf_primary_track.Id unless sf_primary_track.blank? end if secondary_track_id = self.proposal.secondary_track_id sf_secondary_track = Sf::Track.find_by(reg_event_id__c: sf_event.Id, cms_track_id__c: secondary_track_id) - attrs['secondary_track_id__c'] = sf_secondary_track.Id unless sf_secondary_track.blank? + attrs['secondary_track_id__c'] = sf_secondary_track.Id unless sf_secondary_track.blank? end attrs['timestamp__c'] = Time.now.iso8601 meeting = self.proposal.meeting_config.meeting if meeting.present? attrs['cms_meeting_id__c'] = meeting.id end - attrs + attrs end def timestamp - self.timestamp__c.try(:to_datetime) + self.timestamp__c.try(:to_datetime) end def ready_to_publish? required_attrs = %w(title__c start_time__c date__c end_time__c) ready = true required_attrs.each do |attr| - if self.send(attr).blank? + if self.send(attr).blank? ready = false break end @@ -72,21 +72,39 @@ def <=>(b) else 0 end - end + end def self.by_event_code(code) - event = Sf::RegEvent.find_by(code__c: code) + event = Sf::RegEvent.find_by(code__c: code) self.where(event__c: event.Id) unless event.blank? end def self.unpublished_by_event_code(code) - event = Sf::RegEvent.find_by(code__c: code) + event = Sf::RegEvent.find_by(code__c: code) self.where(event__c: event.Id, cms_session_id__c: '') unless event.blank? end + def self.updated_auto_publish_sessions(code) + event = Sf::RegEvent.find_by(code__c: code) + rubyuser = Sf.client.options[:username].split('@')[0] + where_stmt = "event__c = \'#{event.Id}\' and auto_publish__c = true and LastModifiedBy.Name != \'#{rubyuser}\'" + self.query(where_stmt) + end + + def self.query(where_stmt) + sobjects = Sf.client.query("select Id, Name, title__c, primary_track_id__r.Name, + session_type__r.Name, start_time__c, room_id__r.Name, + cms_session_id__c, timestamp__c, date__c, end_time__c, auto_publish__c, LastModifiedBy.Name + from EventSession__c where #{where_stmt}") + build_collection sobjects unless sobjects.blank? + end + def self.where(args = {}) where = args.map {|k,v| "#{k} = \'#{v}\'"}.join(" and ") - sobjects = Sf.client.query("select Id, Name, title__c, primary_track_id__r.Name, session_type__r.Name, start_time__c, room_id__r.Name, cms_session_id__c, timestamp__c, date__c, end_time__c from EventSession__c where #{where}") + sobjects = Sf.client.query("select Id, Name, title__c, primary_track_id__r.Name, + session_type__r.Name, start_time__c, room_id__r.Name, + cms_session_id__c, timestamp__c, date__c, end_time__c, auto_publish__c + from EventSession__c where #{where}") build_collection sobjects unless sobjects.blank? end end