Skip to content

Commit c079319

Browse files
committed
get calendar event uses ownerid for icaluid
1 parent f816bbc commit c079319

1 file changed

Lines changed: 31 additions & 8 deletions

File tree

api/calendar_impl.go

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,6 @@ func (s Server) GetAPICalendarEvent(w http.ResponseWriter, r *http.Request, para
126126
ctx, cancel := context.WithTimeout(r.Context(), time.Minute)
127127
defer cancel()
128128

129-
// create graph client for the userID in query params.
130-
graph, err := CreateMSFTGraphClient(ctx, s.MSALClient, s.DB, userID)
131-
if err != nil {
132-
logger.Error("failed to create msgraph client", zap.Error(err))
133-
sendError(w, http.StatusBadGateway, "Failed to connect to microsoft graph API")
134-
return
135-
}
136-
137129
// Make call to API route and parse events
138130
// Get old meeting data from microsoft
139131
var msftMeeting graphmodels.Eventable
@@ -148,6 +140,28 @@ func (s Server) GetAPICalendarEvent(w http.ResponseWriter, r *http.Request, para
148140
},
149141
}
150142

143+
meetingObj, err := s.DB.GetMeetingByMSFTID(ctx, params.MsftID)
144+
if err != nil {
145+
logger.Error("meeting not found in db to find owner of meeting with iCalUID", zap.Error(err))
146+
sendError(w, http.StatusBadGateway, "Meeting not found in db to find owner of meeting")
147+
return
148+
}
149+
150+
// Get owner's user id
151+
ownerObj, err := s.DB.GetUserByEmail(ctx, meetingObj.OwnerEmail)
152+
if err != nil {
153+
logger.Error("failed to get owner obj from db using email: ", zap.Error(err))
154+
sendError(w, http.StatusBadGateway, "owner is not found as a slotify user")
155+
return
156+
}
157+
158+
graph, err := CreateMSFTGraphClient(ctx, s.MSALClient, s.DB, ownerObj.ID)
159+
if err != nil {
160+
logger.Error("failed to create msgraph client with owner id", zap.Error(err))
161+
sendError(w, http.StatusBadGateway, "Failed to connect to microsoft graph API")
162+
return
163+
}
164+
151165
var msftMeetingRes graphmodels.EventCollectionResponseable
152166
msftMeetingRes, err = graph.Me().Events().Get(ctx, &requestConfig)
153167
if err != nil {
@@ -165,6 +179,14 @@ func (s Server) GetAPICalendarEvent(w http.ResponseWriter, r *http.Request, para
165179
return
166180
}
167181
} else {
182+
// create graph client for the userID in query params.
183+
graph, err := CreateMSFTGraphClient(ctx, s.MSALClient, s.DB, userID)
184+
if err != nil {
185+
logger.Error("failed to create msgraph client", zap.Error(err))
186+
sendError(w, http.StatusBadGateway, "Failed to connect to microsoft graph API")
187+
return
188+
}
189+
168190
msftMeeting, err = graph.Me().Events().ByEventId(params.MsftID).Get(ctx, nil)
169191
if err != nil {
170192
logger.Error("failed to get meeting data from microsoft", zap.Error(err))
@@ -174,6 +196,7 @@ func (s Server) GetAPICalendarEvent(w http.ResponseWriter, r *http.Request, para
174196
}
175197

176198
var parsedEvents []CalendarEvent
199+
var err error
177200
if parsedEvents, err = parseEventableResp([]graphmodels.Eventable{msftMeeting}); err != nil {
178201
logger.Error("failed to get meeting data from microsoft", zap.Error(err))
179202
sendError(w, http.StatusBadGateway, "Failed to get meeting data from microsoft")

0 commit comments

Comments
 (0)