Skip to content

Commit b14b32c

Browse files
committed
refactor: rename GetCalendarID to GetCalendarHash
1 parent 8b2c5a3 commit b14b32c

File tree

13 files changed

+63
-68
lines changed

13 files changed

+63
-68
lines changed

internal/adapter/google/adapter.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type GoogleCalendarClient interface {
2525
CreateEvent(ctx context.Context, event models.Event) error
2626
UpdateEvent(ctx context.Context, event models.Event) error
2727
DeleteEvent(ctx context.Context, event models.Event) error
28-
GetCalendarID() string
28+
GetCalendarHash() string
2929
InitGoogleCalendarClient(calId string, log *log.Logger) error
3030
}
3131

@@ -226,12 +226,12 @@ func (c *CalendarAPI) Name() string {
226226
return "Google Calendar"
227227
}
228228

229-
// GetCalendarID calculates a unique ID for this adapter based on the current calendar.
229+
// GetCalendarHash calculates a unique hash for this adapter based on the current calendar.
230230
// This is used to distinguish between adapters in order to not overwrite or delete events
231231
// which are maintained by different adapters.
232232
// A simple use-case for this is if you have multiple google calendars as source adapters configured.
233-
func (c *CalendarAPI) GetCalendarID() string {
234-
return c.gcalClient.GetCalendarID()
233+
func (c *CalendarAPI) GetCalendarHash() string {
234+
return c.gcalClient.GetCalendarHash()
235235
}
236236

237237
func (c *CalendarAPI) SetLogger(logger *log.Logger) {

internal/adapter/google/client.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func (g *GCalClient) ListEvents(ctx context.Context, starttime time.Time, endtim
7070

7171
var loadedEvents []models.Event
7272
for _, event := range eventList.Items {
73-
loadedEvents = append(loadedEvents, calendarEventToEvent(event, g.GetCalendarID()))
73+
loadedEvents = append(loadedEvents, calendarEventToEvent(event, g.GetCalendarHash()))
7474
}
7575

7676
// if the responses 'nextPageToken' is set, the result is paginated and more data to be loaded recursively
@@ -80,7 +80,7 @@ func (g *GCalClient) ListEvents(ctx context.Context, starttime time.Time, endtim
8080
return nil, err
8181
}
8282
for _, pageEvent := range eventList.Items {
83-
loadedEvents = append(loadedEvents, calendarEventToEvent(pageEvent, g.GetCalendarID()))
83+
loadedEvents = append(loadedEvents, calendarEventToEvent(pageEvent, g.GetCalendarHash()))
8484
}
8585
}
8686
return loadedEvents, nil
@@ -216,11 +216,11 @@ func (g *GCalClient) loadPages(listCall *calendar.EventsListCall, events *[]*cal
216216
return g.loadPages(listCall, events, pageEvents.NextPageToken)
217217
}
218218

219-
// GetCalendarID calculates a unique ID for this adapter based on the current calendar.
219+
// GetCalendarHash calculates a unique ID for this adapter based on the current calendar.
220220
// This is used to distinguish between adapters in order to not overwrite or delete events
221221
// which are maintained by different adapters.
222222
// A simple use-case for this is if you have multiple google calendars as source adapters configured.
223-
func (g *GCalClient) GetCalendarID() string {
223+
func (g *GCalClient) GetCalendarHash() string {
224224
var id []byte
225225

226226
sum := sha1.Sum([]byte(g.CalendarId))

internal/adapter/outlook_http/adapter.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type OutlookCalendarClient interface {
2424
CreateEvent(ctx context.Context, event models.Event) error
2525
UpdateEvent(ctx context.Context, event models.Event) error
2626
DeleteEvent(ctx context.Context, event models.Event) error
27-
GetCalendarID() string
27+
GetCalendarHash() string
2828
}
2929

3030
type CalendarAPI struct {
@@ -245,8 +245,8 @@ func (c *CalendarAPI) DeleteEvent(ctx context.Context, e models.Event) error {
245245
return nil
246246
}
247247

248-
func (c *CalendarAPI) GetCalendarID() string {
249-
return c.outlookClient.GetCalendarID()
248+
func (c *CalendarAPI) GetCalendarHash() string {
249+
return c.outlookClient.GetCalendarHash()
250250
}
251251

252252
func (c *CalendarAPI) Name() string {

internal/adapter/outlook_http/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (o *OutlookClient) ListEvents(ctx context.Context, start time.Time, end tim
8484

8585
var events []models.Event
8686
for _, evt := range eventList.Events {
87-
evt, err := o.outlookEventToEvent(evt, o.GetCalendarID())
87+
evt, err := o.outlookEventToEvent(evt, o.GetCalendarHash())
8888
if err != nil {
8989
return nil, err
9090
}
@@ -176,7 +176,7 @@ func (o *OutlookClient) DeleteEvent(ctx context.Context, event models.Event) err
176176
return nil
177177
}
178178

179-
func (o OutlookClient) GetCalendarID() string {
179+
func (o OutlookClient) GetCalendarHash() string {
180180
var id []byte
181181
sum := sha1.Sum([]byte(o.CalendarID))
182182
id = append(id, sum[:]...)

internal/adapter/sink_adapter.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,6 @@ func (a SinkAdapter) EventsInTimeframe(ctx context.Context, start time.Time, end
104104
return a.client.EventsInTimeframe(ctx, start, end)
105105
}
106106

107-
func (a SinkAdapter) GetCalendarID() string {
108-
return a.client.GetCalendarID()
107+
func (a SinkAdapter) GetCalendarHash() string {
108+
return a.client.GetCalendarHash()
109109
}

internal/adapter/source_adapter.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ func (a SourceAdapter) Name() string {
9191
func (a SourceAdapter) CalendarID() string {
9292
return a.calendarID
9393
}
94-
func (a SourceAdapter) GetCalendarID() string {
95-
return a.client.GetCalendarID()
94+
func (a SourceAdapter) GetCalendarHash() string {
95+
return a.client.GetCalendarHash()
9696
}
9797

9898
func (a SourceAdapter) EventsInTimeframe(ctx context.Context, start time.Time, end time.Time) ([]models.Event, error) {

internal/adapter/zep/client.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,13 @@ type CalendarAPI struct {
4040
// Assert that the expected interfaces are implemented
4141
var _ port.Configurable = &CalendarAPI{}
4242

43-
func (zep *CalendarAPI) GetCalendarID() string {
44-
return zep.generateCalendarID()
45-
}
46-
47-
func (zep *CalendarAPI) generateCalendarID() string {
43+
func (zep *CalendarAPI) GetCalendarHash() string {
4844
var id []byte
4945
components := []string{zep.username, zep.homeSet, zep.calendarID}
5046

5147
sum := sha1.Sum([]byte(strings.Join(components, "")))
5248
id = append(id, sum[:]...)
5349
return base64.URLEncoding.EncodeToString(id)
54-
5550
}
5651

5752
func (zep *CalendarAPI) Name() string {
@@ -109,7 +104,7 @@ func (zep *CalendarAPI) EventsInTimeframe(ctx context.Context, start time.Time,
109104
StartTime: v.Start,
110105
EndTime: v.End,
111106
Accepted: true,
112-
Metadata: models.NewEventMetadata(v.ID, "", zep.GetCalendarID()),
107+
Metadata: models.NewEventMetadata(v.ID, "", zep.GetCalendarHash()),
113108
})
114109
}
115110

internal/models/metadata.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type Metadata struct {
1212
SyncID string `json:"SyncID"`
1313
// OriginalEventUri is an URI which points to the original event which was synced. This is usually an URL.
1414
OriginalEventUri string `json:"OriginalEventUri"`
15-
// SourceID contains the ID of the source which this event was imported from
15+
// SourceID contains the unique hash of the source which this event was imported from
1616
SourceID string `json:"SourceID"`
1717
}
1818

internal/sync/controller.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ func (p Controller) CleanUp(ctx context.Context, start time.Time, end time.Time)
159159
for _, event := range sink {
160160
// Check if the sink event was synced by us, if there's no metadata the event may
161161
// be there because we were invited or because it is not managed by us
162-
if event.Metadata.SourceID == p.source.GetCalendarID() {
162+
if event.Metadata.SourceID == p.source.GetCalendarHash() {
163163
// redefine to let the closure capture individual variables
164164
event := event
165165
tasks = append(tasks, func() error {
@@ -201,18 +201,18 @@ func (p Controller) diffEvents(sourceEvents []models.Event, sinkEvents []models.
201201
// - Run sync from calendar B to calendar A. This will copy (and thereby resurrect) the event.
202202
//
203203
// Solution: Ignore events the originate from the sink, but no longer exist there.
204-
if event.Metadata.SourceID == p.sink.GetCalendarID() {
204+
if event.Metadata.SourceID == p.sink.GetCalendarHash() {
205205
p.logger.Info("skipping event as it originates from the sink, but no longer exists there", logFields(event)...)
206206
continue
207207
}
208208
p.logger.Info("new event, needs sync", logFields(event)...)
209209
createEvents = append(createEvents, event)
210210

211-
case sinkEvent.Metadata.SourceID != p.source.GetCalendarID():
211+
case sinkEvent.Metadata.SourceID != p.source.GetCalendarHash():
212212
p.logger.Info("event was not synced by this source adapter, skipping", logFields(event)...)
213213

214214
// Only update the event if the event differs AND we synced it prior and set the correct metadata
215-
case !models.IsSameEvent(event, sinkEvent) && sinkEvent.Metadata.SourceID == p.source.GetCalendarID():
215+
case !models.IsSameEvent(event, sinkEvent) && sinkEvent.Metadata.SourceID == p.source.GetCalendarHash():
216216
p.logger.Info("event content changed, needs sync", logFields(event)...)
217217
updateEvents = append(updateEvents, sinkEvent.Overwrite(event))
218218

@@ -231,7 +231,7 @@ func (p Controller) diffEvents(sourceEvents []models.Event, sinkEvents []models.
231231
case exists:
232232
// Nothing to do
233233

234-
case event.Metadata.SourceID == p.source.GetCalendarID():
234+
case event.Metadata.SourceID == p.source.GetCalendarHash():
235235
p.logger.Info("sinkEvent is not (anymore) in sourceEvents, marked for removal", logFields(event)...)
236236
deleteEvents = append(deleteEvents, event)
237237

internal/sync/controller_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ func (suite *ControllerTestSuite) TestDryRun() {
9999
suite.source.On("EventsInTimeframe", ctx, startTime, endTime).Return(sourceEvents, nil)
100100
suite.sink.On("EventsInTimeframe", ctx, startTime, endTime).Return(sinkEvents, nil)
101101
suite.sink.On("DeleteEvent", ctx, mock.AnythingOfType("models.Event")).Return(nil)
102-
suite.sink.On("GetCalendarID").Return("sinkID")
103-
suite.source.On("GetCalendarID").Return("sourceID")
102+
suite.sink.On("GetCalendarHash").Return("sinkID")
103+
suite.source.On("GetCalendarHash").Return("sourceID")
104104

105105
err := suite.controller.SynchroniseTimeframe(ctx, startTime, endTime, true)
106106
assert.NoError(suite.T(), err)
@@ -176,8 +176,8 @@ func (suite *ControllerTestSuite) TestCleanUp() {
176176
suite.source.On("EventsInTimeframe", ctx, startTime, endTime).Return(sourceEvents, nil)
177177
suite.sink.On("EventsInTimeframe", ctx, startTime, endTime).Return(sinkEvents, nil)
178178
suite.sink.On("DeleteEvent", ctx, mock.AnythingOfType("models.Event")).Return(nil)
179-
suite.sink.On("GetCalendarID").Return("sinkID")
180-
suite.source.On("GetCalendarID").Return("sourceID")
179+
suite.sink.On("GetCalendarHash").Return("sinkID")
180+
suite.source.On("GetCalendarHash").Return("sourceID")
181181

182182
err := suite.controller.CleanUp(ctx, startTime, endTime)
183183
assert.NoError(suite.T(), err)
@@ -222,7 +222,7 @@ func (suite *ControllerTestSuite) TestCreateEventsEmptySink() {
222222
suite.source.On("EventsInTimeframe", ctx, startTime, endTime).Return(eventsToCreate, nil)
223223
suite.sink.On("EventsInTimeframe", ctx, startTime, endTime).Return(nil, nil)
224224
suite.sink.On("CreateEvent", ctx, mock.AnythingOfType("models.Event")).Return(nil)
225-
suite.sink.On("GetCalendarID").Return("sinkID")
225+
suite.sink.On("GetCalendarHash").Return("sinkID")
226226

227227
err := suite.controller.SynchroniseTimeframe(ctx, startTime, endTime, false)
228228
assert.NoError(suite.T(), err)
@@ -307,8 +307,8 @@ func (suite *ControllerTestSuite) TestDeleteEventsNotInSink() {
307307
suite.sink.On("DeleteEvent", ctx, mock.AnythingOfType("models.Event")).Return(nil)
308308
// UpdateEvent gets called because the remaining event in the sink will get updated because there are no transformers configured
309309
suite.sink.On("UpdateEvent", ctx, mock.AnythingOfType("models.Event")).Return(nil)
310-
suite.sink.On("GetCalendarID").Return("sinkID")
311-
suite.source.On("GetCalendarID").Return("sourceID")
310+
suite.sink.On("GetCalendarHash").Return("sinkID")
311+
suite.source.On("GetCalendarHash").Return("sourceID")
312312

313313
err := suite.controller.SynchroniseTimeframe(ctx, startTime, endTime, false)
314314
assert.NoError(suite.T(), err)
@@ -344,8 +344,8 @@ func (suite *ControllerTestSuite) TestDoNotResurrectEvents() {
344344

345345
suite.source.On("EventsInTimeframe", ctx, startTime, endTime).Return(sourceEvents, nil)
346346
suite.sink.On("EventsInTimeframe", ctx, startTime, endTime).Return(sinkEvents, nil)
347-
suite.sink.On("GetCalendarID").Return("sinkID")
348-
suite.source.On("GetCalendarID").Return("sourceID")
347+
suite.sink.On("GetCalendarHash").Return("sinkID")
348+
suite.source.On("GetCalendarHash").Return("sourceID")
349349

350350
err := suite.controller.SynchroniseTimeframe(ctx, startTime, endTime, false)
351351
assert.NoError(suite.T(), err)
@@ -478,8 +478,8 @@ func (suite *ControllerTestSuite) TestUpdateEventsPrefilledSink() {
478478
suite.source.On("EventsInTimeframe", ctx, startTime, endTime).Return(sourceEvents, nil)
479479
suite.sink.On("EventsInTimeframe", ctx, startTime, endTime).Return(sinkEvents, nil)
480480
suite.sink.On("UpdateEvent", ctx, mock.AnythingOfType("models.Event")).Return(nil)
481-
suite.sink.On("GetCalendarID").Return("sinkID")
482-
suite.source.On("GetCalendarID").Return("sourceID")
481+
suite.sink.On("GetCalendarHash").Return("sinkID")
482+
suite.source.On("GetCalendarHash").Return("sourceID")
483483

484484
err := suite.controller.SynchroniseTimeframe(ctx, startTime, endTime, false)
485485
assert.NoError(suite.T(), err)
@@ -525,7 +525,7 @@ func (suite *ControllerTestSuite) TestCreateEventsDeclined() {
525525
suite.source.On("EventsInTimeframe", ctx, startTime, endTime).Return(eventsToCreate, nil)
526526
suite.sink.On("EventsInTimeframe", ctx, startTime, endTime).Return(nil, nil)
527527
suite.sink.On("CreateEvent", ctx, mock.AnythingOfType("models.Event")).Return(nil)
528-
suite.sink.On("GetCalendarID").Return("sinkID")
528+
suite.sink.On("GetCalendarHash").Return("sinkID")
529529

530530
err := suite.controller.SynchroniseTimeframe(ctx, startTime, endTime, false)
531531
assert.NoError(suite.T(), err)
@@ -769,10 +769,10 @@ func TestController_diffEvents(t *testing.T) {
769769
for _, tc := range tt {
770770
t.Run(tc.name, func(t *testing.T) {
771771
var source mocks.Source
772-
source.On("GetCalendarID").Return("sourceID")
772+
source.On("GetCalendarHash").Return("sourceID")
773773

774774
var sink mocks.Sink
775-
sink.On("GetCalendarID").Return("sinkID")
775+
sink.On("GetCalendarHash").Return("sinkID")
776776

777777
var controller = Controller{
778778
source: &source,

0 commit comments

Comments
 (0)