From 42bb4153e3709edd871fbc3df06eb75d876a2a28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marta=20Jim=C3=A9nez=20Franco?= Date: Thu, 31 May 2018 20:07:47 +0200 Subject: [PATCH] Fix commented code This code was commented by mistake and did not enter on v0.1.0 so this is to fix it and create v0.1.1 --- Dockerfile | 1 + backend/db/db.go | 93 ++++++++++++++++++++++++++-------------------- docker-compose.yml | 3 ++ 3 files changed, 57 insertions(+), 40 deletions(-) diff --git a/Dockerfile b/Dockerfile index ee969f1..f1a0f1d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,7 @@ COPY . . RUN go get github.com/lib/pq RUN go get github.com/google/uuid +RUN go get github.com/getsentry/raven-go RUN go install -v ./... CMD ["GoSyncMyCalendars"] \ No newline at end of file diff --git a/backend/db/db.go b/backend/db/db.go index 24c679d..0d0520e 100644 --- a/backend/db/db.go +++ b/backend/db/db.go @@ -29,6 +29,10 @@ func (data Database) Close() error { //TODO: raven this func (data Database) StartSync(calendar api.CalendarManager, userUUID string) (err error) { + var subscriptions []api.SubscriptionManager + var subs api.SubscriptionManager + var eventsCreated []api.EventManager + var events []api.EventManager transaction, err := data.client.Begin() if err != nil { log.Errorf("error creating transaction: %s", err.Error()) @@ -36,8 +40,6 @@ func (data Database) StartSync(calendar api.CalendarManager, userUUID string) (e } data.UpdateAccountFromUser(calendar.GetAccount(), userUUID) data.UpdateCalendarFromUser(calendar, userUUID) - var subscriptions []api.SubscriptionManager - var subs api.SubscriptionManager switch calendar.(type) { case *api.GoogleCalendar: subs = api.NewGoogleSubscription(uuid.New().String()) @@ -46,27 +48,26 @@ func (data Database) StartSync(calendar api.CalendarManager, userUUID string) (e subs = api.NewOutlookSubscription(uuid.New().String()) err = subs.Subscribe(calendar) } - //TODO: - //if err != nil { - // log.Errorf("error creating subscription for calendar: %s, error: %s", calendar.GetUUID(), err.Error()) - // return - //} + if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) + log.Errorf("error creating subscription for calendar: %s, error: %s", calendar.GetUUID(), err.Error()) + goto End + } subscriptions = append(subscriptions, subs) data.saveSubscription(transaction, subs, calendar) - events, err := calendar.GetAllEvents() - //TODO: - //if err != nil { - // log.Errorf("error creating subscription for calendar: %s, error: %s", calendar.GetUUID(), err.Error()) - // return - //} + events, err = calendar.GetAllEvents() + if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) + log.Errorf("error creating subscription for calendar: %s, error: %s", calendar.GetUUID(), err.Error()) + goto End + } err = data.savePrincipalEvents(transaction, events) - //TODO: - //if err != nil { - // log.Errorf("error creating subscription for calendar: %s, error: %s", calendar.GetUUID(), err.Error()) - // return - //} + if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) + log.Errorf("error creating subscription for calendar: %s, error: %s", calendar.GetUUID(), err.Error()) + goto End + } - var eventsCreated []api.EventManager for _, cal := range calendar.GetCalendars() { data.UpdateAccountFromUser(cal.GetAccount(), userUUID) data.UpdateCalendarFromUser(cal, userUUID) @@ -84,44 +85,55 @@ func (data Database) StartSync(calendar api.CalendarManager, userUUID string) (e api.Convert(event, toEvent) err = toEvent.SetCalendar(cal) if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) log.Errorf("error converting event for calendar: %s, error: %s", cal.GetUUID(), err.Error()) - break + goto End } - toEvent.Create() + err = toEvent.Create() if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) log.Errorf("error creating event for calendar: %s, error: %s", cal.GetUUID(), err.Error()) - break + goto End } eventsCreated = append(eventsCreated, toEvent) err = data.saveEventsRelation(transaction, event, toEvent) if err != nil { - + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) + log.Errorf("error saving relation on database: %s, error: %s", event.GetID(), err.Error()) + goto End } } if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) log.Errorln("some error saving events") - break + goto End } - subscript.Subscribe(cal) + err := subscript.Subscribe(cal) if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) log.Errorf("error creating subscription for calendar: %s, error: %s", calendar.GetUUID(), err.Error()) - break + goto End } subscriptions = append(subscriptions, subscript) - data.saveSubscription(transaction, subscript, cal) + err = data.saveSubscription(transaction, subscript, cal) + if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) + log.Errorf("error saving subscription to db: %s", subscript.GetID()) + goto End + } + } +End: + if err != nil { + transaction.Rollback() + for _, subscription := range subscriptions { + subscription.Delete() + } + + for _, event := range eventsCreated { + event.Delete() + } + return } - //TODO: - //if err != nil { - // transaction.Rollback() - // for _, subscription := range subscriptions { - // subscription.Delete() - // } - // - // for _, event := range eventsCreated { - // event.Delete() - // } - // return - //} transaction.Commit() return } @@ -141,8 +153,9 @@ func (data Database) StopSync(principalSubscriptionUUID string, userEmail string continue } go func() { data.UpdateAccountFromUser(acc, userUUID) }() - //err := subscription.Delete() + err = subscription.Delete() if err != nil { + data.sentry.CaptureErrorAndWait(err, map[string]string{"database": "backend"}) log.Errorf("error deleting subscription: %s", err.Error()) } err = data.deleteEventsFromSubscription(transaction, subscription) diff --git a/docker-compose.yml b/docker-compose.yml index f6c7ccd..0f9657c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,9 @@ services: - ENDPOINT=${ENDPOINT} - SENTRY_DSN=${SENTRY_DSN} - ORIGIN=${ORIGIN} + - RELEASE=${RELEASE} + - ENVIRONMENT=${ENVIRONMENT} + - API_ROOT=${API_ROOT} postgres: volumes: