view calsync/mongoclient/events_collection.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 dade5bbd02e3
children 635ff76f867c
line wrap: on
line source

package mongoclient

import (
	"log"
	"time"

	"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 := ev
	update := bson.M{"$set": setFields}
	_, err := c.eventsCollection.UpdateOne(c.ctx, filter, update, options.Update().SetUpsert(true))
	if err != nil {
		return err
	}
	return nil
}

func (c *MongoClient) DeleteEventsUpdatedBefore(t time.Time) error {
	res, err := c.eventsCollection.DeleteMany(c.ctx, bson.M{"lastUpdated": bson.M{"$lt": t}})
	log.Println("deleted", res.DeletedCount, "events")
	if err != nil {
		return err
	}
	return nil
}