Mercurial > code > home > repos > gcalendarwatch
view calsync/convert/convert.go @ 51:a9b720445bcf
now roughly syncs cals and events to mongodb, one time
author | drewp@bigasterisk.com |
---|---|
date | Mon, 19 Aug 2024 14:42:27 -0700 |
parents | 2991c1166852 |
children | 635ff76f867c |
line wrap: on
line source
package convert import ( "log" "time" "bigasterisk.com/go/gcalendarwatch/gcalclient" "bigasterisk.com/go/gcalendarwatch/mongoclient" "google.golang.org/api/calendar/v3" ) func MongoCalFromGoogleCal(cal *calendar.CalendarListEntry) mongoclient.MongoCal { return mongoclient.MongoCal{ Url: gcalclient.MakeCalUrl(cal.Id), GoogleId: cal.Id, Summary: cal.Summary, Description: cal.Description, } } func MongoEventFromGoogleEvent2( calUrl string, ev *gcalclient.CalendarEvent, now time.Time, ) mongoclient.MongoEvent { return mongoEventFromGoogleEvent(ev, now) } func mongoEventFromGoogleEvent(ev *gcalclient.CalendarEvent, now time.Time) mongoclient.MongoEvent { return mongoclient.MongoEvent{ LastUpdated: now, Url: ev.EventUrl, GoogleId: ev.Id, CalendarUrl: ev.CalendarUrl, HtmlLink: ev.HtmlLink, Title: ev.Summary, EndTimeUnspecified: ev.EndTimeUnspecified, Start: ev.Start.DateTime, StartDate: ev.Start.Date, // if all-day StartTime: goTimeFromEventField(ev.Start), End: ev.End.DateTime, EndDate: ev.End.Date, // if all-day EndTime: goTimeFromEventField(ev.End), } } func goTimeFromEventField(x *calendar.EventDateTime) time.Time { if x.Date != "" { t, err := time.Parse("2006-01-02", x.Date) if err != nil { log.Panicf("Error parsing x.Date %s: %v", x.Date, err) } return t } t, err := time.Parse(time.RFC3339, x.DateTime) if err != nil { log.Panicf("Error parsing x.DateTime %s: %v", x.DateTime, err) } return t }