@@ -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