VRFS-3276 : Calendar Manager - initial checkin
* Create ICS events given individual parameters * Create calendar from music session * Also will create ICS “delete” events
This commit is contained in:
parent
5c79bdab5c
commit
f8eaafd036
|
|
@ -0,0 +1,43 @@
|
|||
module JamRuby
|
||||
class CalendarManager
|
||||
class << self
|
||||
def ics_from_music_session(music_session, delete=false)
|
||||
uid = "#{music_session.user_id}_#{music_session.id}@JamKazam"
|
||||
text = "JamKazam Session #{music_session.description}"
|
||||
case music_session.recurring_mode
|
||||
when NO_RECURRING
|
||||
create_ics_event(uid, text, scheduled_start, scheduled_start+scheduled_duration, delete)
|
||||
when RECURRING_WEEKLY
|
||||
create_ics_event(uid, text, scheduled_start, scheduled_start+scheduled_duration, delete)
|
||||
else
|
||||
raise ArgumentError("Recurring mode not supported: #{music_session.recurring_mode}")
|
||||
end
|
||||
end
|
||||
|
||||
# @return calendar (as ICS string) for specified user
|
||||
def create_ics_feed(user)
|
||||
end
|
||||
|
||||
def create_ics_event(uuid, summary, start_at, end_at, delete=false, sequence=0)
|
||||
uuid ||= UUID.timestamp_create
|
||||
event = "BEGIN:VEVENT\r\n"
|
||||
event << "UID:#{uuid}\r\n"
|
||||
event << "DTSTAMP:#{Time.now.utc().strftime(DATE_FORMAT)}\r\n"
|
||||
event << "DTSTART:#{start_at.utc().strftime(DATE_FORMAT)}\r\n"
|
||||
event << "DTEND:#{end_at.utc().strftime(DATE_FORMAT)}\r\n"
|
||||
event << "SUMMARY:#{summary}\r\n"
|
||||
if delete
|
||||
event << "METHOD:CANCEL\r\n"
|
||||
event << "STATUS:CANCELLED\r\n"
|
||||
end
|
||||
event << "SEQUENCE:#{sequence}\r\n" if sequence
|
||||
event << "END:VEVENT"
|
||||
end
|
||||
|
||||
def create_ics_cal(ics_events)
|
||||
"BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:JamKazam\r\n#{ics_events}\r\nEND:VCALENDAR"
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue