hswaw/site: wip new layout
Change-Id: I4da3a668429dee42c7292accb9e24b93703f1538
diff --git a/hswaw/site/events.go b/hswaw/site/events.go
new file mode 100644
index 0000000..26d4866
--- /dev/null
+++ b/hswaw/site/events.go
@@ -0,0 +1,45 @@
+package main
+
+import (
+ "context"
+ "time"
+
+ "code.hackerspace.pl/hscloud/hswaw/site/calendar"
+ "github.com/golang/glog"
+)
+
+func (s *service) eventsWorker(ctx context.Context) {
+ get := func() {
+ events, err := calendar.GetUpcomingEvents(ctx, time.Now())
+ if err != nil {
+ glog.Errorf("Geting events failed: %v", err)
+ return
+ }
+
+ s.eventsMu.Lock()
+ s.events = events
+ s.eventsMu.Unlock()
+ }
+ // Perform initial fetch.
+ get()
+
+ // .. and update very minute.
+ t := time.NewTicker(time.Minute)
+ defer t.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-t.C:
+ get()
+ }
+ }
+}
+
+func (s *service) getEvents() []*calendar.UpcomingEvent {
+ s.eventsMu.RLock()
+ events := s.events
+ s.eventsMu.RUnlock()
+ return events
+}