@@ -11,6 +11,7 @@ import (
1111
1212 "github.com/SlotifyApp/slotify-backend/database"
1313 "github.com/avast/retry-go"
14+ msgraphsdkgo "github.com/microsoftgraph/msgraph-sdk-go"
1415 graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
1516 "go.uber.org/zap"
1617)
@@ -43,9 +44,17 @@ func (s Server) PostAPIRescheduleCheck(w http.ResponseWriter, r *http.Request) {
4344 return
4445 }
4546
47+ var graphForOwner * msgraphsdkgo.GraphServiceClient
48+ graphForOwner , err = CreateMSFTGraphClient (ctx , s .MSALClient , s .DB , userID )
49+ if err != nil {
50+ logger .Error ("failed to create msgraph client" , zap .Error (err ))
51+ sendError (w , http .StatusBadGateway , "Failed to connect to microsoft graph API" )
52+ return
53+ }
54+
4655 // Get old meeting data from microsoft
47- msftMeeting , err := getUsersEvent (ctx , graph , * logger ,
48- body .OldMeeting .MsftMeetingID , string ( body . OldMeeting . OwnerEmail ) )
56+ msftMeeting , err := getUsersEvent (ctx , graphForOwner ,
57+ body .OldMeeting .MsftMeetingID )
4958 if err != nil {
5059 logger .Error ("failed to get meeting data from microsoft" , zap .Error (err ))
5160 sendError (w , http .StatusBadGateway , "Failed to get meeting data from microsoft" )
@@ -132,13 +141,6 @@ func (s Server) PostAPIRescheduleRequestReplace(w http.ResponseWriter, r *http.R
132141 return
133142 }
134143
135- graph , err := CreateMSFTGraphClient (ctx , s .MSALClient , s .DB , userID )
136- if err != nil {
137- logger .Error ("failed to create msgraph client" , zap .Error (err ))
138- sendError (w , http .StatusBadGateway , "Failed to connect to microsoft graph API" )
139- return
140- }
141-
142144 // Check owner exists
143145 ownerObj , err := s .DB .GetUserByEmail (ctx , string (body .OldMeeting .OwnerEmail ))
144146 if err != nil {
@@ -147,6 +149,13 @@ func (s Server) PostAPIRescheduleRequestReplace(w http.ResponseWriter, r *http.R
147149 return
148150 }
149151
152+ graph , err := CreateMSFTGraphClient (ctx , s .MSALClient , s .DB , ownerObj .ID )
153+ if err != nil {
154+ logger .Error ("failed to create msgraph client with owner id" , zap .Error (err ))
155+ sendError (w , http .StatusBadGateway , "Failed to connect to microsoft graph API" )
156+ return
157+ }
158+
150159 // Create Rescheduling Request
151160 var requestID int64
152161 err = retry .Do (func () error {
@@ -170,7 +179,7 @@ func (s Server) PostAPIRescheduleRequestReplace(w http.ResponseWriter, r *http.R
170179 if errors .Is (err , sql .ErrNoRows ) {
171180 // Meeting info not in db, so create new meeting info
172181 meeting , err = processNewMeetingInfo (ctx , graph , s ,
173- body .OldMeeting .MsftMeetingID , * logger , string (body .OldMeeting .OwnerEmail ))
182+ body .OldMeeting .MsftMeetingID , string (body .OldMeeting .OwnerEmail ))
174183 if err != nil {
175184 logger .Error ("DB Creation Error: " , zap .Error (err ))
176185 sendError (w , http .StatusBadGateway , "Failed to create New Meeting Info" )
@@ -286,13 +295,6 @@ func (s Server) PostAPIRescheduleRequestSingle(w http.ResponseWriter, r *http.Re
286295 return
287296 }
288297
289- graph , err := CreateMSFTGraphClient (ctx , s .MSALClient , s .DB , userID )
290- if err != nil {
291- logger .Error ("failed to create msgraph client" , zap .Error (err ))
292- sendError (w , http .StatusBadGateway , "Failed to connect to microsoft graph API" )
293- return
294- }
295-
296298 // Check owner exists
297299 ownerObj , err := s .DB .GetUserByEmail (ctx , string (body .OwnerEmail ))
298300 if err != nil {
@@ -301,6 +303,13 @@ func (s Server) PostAPIRescheduleRequestSingle(w http.ResponseWriter, r *http.Re
301303 return
302304 }
303305
306+ graph , err := CreateMSFTGraphClient (ctx , s .MSALClient , s .DB , ownerObj .ID )
307+ if err != nil {
308+ logger .Error ("failed to create msgraph client" , zap .Error (err ))
309+ sendError (w , http .StatusBadGateway , "Failed to connect to microsoft graph API" )
310+ return
311+ }
312+
304313 // Create Rescheduling Request
305314 var requestID int64
306315 err = retry .Do (func () error {
@@ -325,7 +334,7 @@ func (s Server) PostAPIRescheduleRequestSingle(w http.ResponseWriter, r *http.Re
325334 meeting , err = s .DB .GetMeetingByMSFTID (ctx , body .MsftMeetingID )
326335
327336 if errors .Is (err , sql .ErrNoRows ) {
328- meeting , err = processNewMeetingInfo (ctx , graph , s , body .MsftMeetingID , * logger , string (body .OwnerEmail ))
337+ meeting , err = processNewMeetingInfo (ctx , graph , s , body .MsftMeetingID , string (body .OwnerEmail ))
329338 if err != nil {
330339 logger .Error ("failed to make new meeting info" , zap .Error (err ))
331340 sendError (w , http .StatusBadGateway , "Failed to make new meeting info" )
0 commit comments