-
Notifications
You must be signed in to change notification settings - Fork 1
google_calendar_flow
Kim DongHyun edited this page Feb 25, 2025
·
1 revision
flowchart TD
%% Personal Event Flow
PES[PersonalEventService<br/>createWithRequest]
InsertEvent[InsertPersonalEvent<br/>Event]
GEH[GoogleEventHandler]
GCS_Insert[GoogleCalendarService.insertPersonalEvents]
%% Google Calendar Flow
GCS[getCalendarService<br/>getCalendarEvents]
GoogleEvent[GoogleEventChanged<br/>Event]
PEH[PersonalEventHandler]
PES_Sync[PersonalEventService.syncWithGoogleEvents]
%% Flow for Personal Event → Google Calendar
PES -->|Saves event & publishes| InsertEvent
InsertEvent -->|Handled by| GEH
GEH -->|Calls| GCS_Insert
%% Flow for Google Calendar → Personal Event
GCS -->|Fetches events & publishes| GoogleEvent
GoogleEvent -->|Handled by| PEH
PEH -->|Calls| PES_Sync
sequenceDiagram
participant PES as PersonalEventService
participant AEP as ApplicationEventPublisher
participant GEH as GoogleEventHandler
participant GCS as GoogleCalendarService
participant PEH as PersonalEventHandler
%% Flow 1: PersonalEvent creation and sync to Google Calendar
PES->>PES: createWithRequest(request)
PES->>AEP: publishEvent(InsertPersonalEvent)
AEP-->>GEH: Deliver InsertPersonalEvent event
GEH->>GCS: insertPersonalEvents(personalEventList)
Note right of GEH: Async & transactional
%% Flow 2: Google Calendar events and sync to PersonalEvent
GCS->>GCS: getCalendarEvents(calendarId, user)
GCS->>AEP: publishEvent(GoogleEventChanged)
AEP-->>PEH: Deliver GoogleEventChanged event
PEH->>PES: syncWithGoogleEvents(events, user, calendarId)