Mercurial > code > home > repos > gcalendarwatch
diff calsync/mongoclient/events_collection.go @ 50:dade5bbd02e3
refactor
author | drewp@bigasterisk.com |
---|---|
date | Mon, 19 Aug 2024 13:37:05 -0700 |
parents | |
children | a9b720445bcf |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calsync/mongoclient/events_collection.go Mon Aug 19 13:37:05 2024 -0700 @@ -0,0 +1,57 @@ +package mongoclient + +import ( + "log" + + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/mongo/options" +) + +func (c *MongoClient) UpsertOneEvent(ev MongoEvent) error { + filter := bson.M{"_id": ev.Url} + setFields := bson.M{ + "googleId": ev.GoogleId, + "lastUpdated": ev.LastUpdated, + "htmlLink": ev.HtmlLink, + "title": ev.Title, + } + update := bson.M{"$set": setFields} + _, err := c.eventsCollection.UpdateOne(c.ctx, filter, update, options.Update().SetUpsert(true)) + if err != nil { + return err + } + log.Println(" mongo upserted", ev.Url) + return nil +} + +// func (c *MongoClient) FindEventsIntersecting(t1, t2 time.Time) ([]MongoEvent, error) { +// cur, err := c.eventsCollection.Find(c.ctx, bson.M{ +// "end": bson.M{"$gte": t1}, +// "start": bson.M{"$lte": t2}, +// }) // todo: allday evs +// if err != nil { +// return nil, err +// } +// defer cur.Close(c.ctx) + +// var events []MongoEvent +// for cur.Next(c.ctx) { +// var ev MongoEvent +// if err := cur.Decode(&ev); err != nil { +// return nil, err +// } +// events = append(events, ev) +// } +// return events, nil +// } + +// func (c *MongoClient) CurrentEvents(now time.Time) ([]MongoEvent, error) { +// return c.FindEventsIntersecting(now, now) +// } +// func (c *MongoClient) UpdateOrInsertEvent(ev MongoEvent) error { +// return errors.New("todo") +// } + +// func (c *MongoClient) DeleteEvent(ev MongoEvent) error { +// return errors.New("todo") +// }