spaceapi-ccc-de/backend/calendar.go
2019-04-02 22:14:49 +02:00

47 lines
No EOL
1.1 KiB
Go

package main
import (
"github.com/gidsi/ics-golang"
"log"
)
func getCalendars() {
spaceDataArray := readSpacedata()
for _, spaceData := range spaceDataArray {
parser := ics.New()
parserChan := parser.GetInputChan()
parserChan <- spaceData.Feeds.Calendar.Url
outputChan := parser.GetOutputChan()
calendar := Calendar{}
calendar.Space = spaceData.Space
var events []Event
go func() {
for event := range outputChan {
events = append(events, mapEventObject(event))
}
}()
parser.Wait()
calendar.Events = events
writeCalendar(calendar)
log.Println("calendar write done for " + spaceData.Space)
}
}
func mapEventObject(event *ics.Event) Event {
eventData := Event{}
eventData.Start = event.GetStart()
eventData.ImportedId = event.GetImportedID()
eventData.Status = event.GetStatus()
eventData.Description = event.GetDescription()
eventData.Location = event.GetLocation()
eventData.Summary = event.GetSummary()
eventData.Rrule = event.GetRRule()
eventData.Url = event.GetUrl()
eventData.Class = event.GetClass()
eventData.Sequence = event.GetSequence()
eventData.WholeDayEvent = event.GetWholeDayEvent()
return eventData
}