view calsync/cal_sync.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 main

import (
	"log"

	"bigasterisk.com/go/gcalendarwatch/convert"
	"bigasterisk.com/go/gcalendarwatch/gcalclient"
	"bigasterisk.com/go/gcalendarwatch/mongoclient"
)

func updateMongoCalsToMatchGoogle(mc *mongoclient.MongoClient, gc *gcalclient.GCalClient) (err error) {
	log.Println("updateMongoCalsToMatchGoogle")

	seen := make(map[string]bool)

	cals, err := gc.AllCalendars(100)
	if err != nil {
		return err
	}

	for _, cal := range cals {
		calUrl := gcalclient.MakeCalUrl(cal.Id)
		log.Println("syncing", calUrl)
		seen[calUrl] = true
		mc.UpsertOneCal(convert.MongoCalFromGoogleCal(cal))
	}

	return mc.DeleteCalsNotInSet(seen)
}