@@ -13,6 +13,7 @@ import (
1313 "github.com/avast/retry-go"
1414 msgraphsdkgo "github.com/microsoftgraph/msgraph-sdk-go"
1515 graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
16+ "github.com/microsoftgraph/msgraph-sdk-go/users"
1617 "go.uber.org/zap"
1718)
1819
@@ -642,6 +643,33 @@ func (s Server) PatchAPIRescheduleRequestRequestIDAccept(w http.ResponseWriter,
642643 return
643644 }
644645
646+ queryFilter := "iCalUId eq '" + req .MsftMeetingID + "'"
647+
648+ // Get old meeting data from microsoft
649+ requestConfig := users.ItemEventsRequestBuilderGetRequestConfiguration {
650+ QueryParameters : & users.ItemEventsRequestBuilderGetQueryParameters {
651+ Filter : & queryFilter ,
652+ },
653+ }
654+
655+ var msftMeetingRes graphmodels.EventCollectionResponseable
656+ msftMeetingRes , err = graph .Me ().Events ().Get (ctx , & requestConfig )
657+ if err != nil {
658+ logger .Error ("failed to get meeting data from microsoft" , zap .Error (err ))
659+ sendError (w , http .StatusBadGateway , "Failed to get meeting data from microsoft" )
660+ return
661+ }
662+
663+ var msftMeeting graphmodels.Eventable
664+ if msftMeetingRes != nil && msftMeetingRes .GetValue () != nil &&
665+ len (msftMeetingRes .GetValue ()) > 0 {
666+ msftMeeting = msftMeetingRes .GetValue ()[0 ]
667+ } else {
668+ logger .Error ("failed to get meeting data from microsoft" , zap .Error (err ))
669+ sendError (w , http .StatusBadGateway , "Failed to get meeting data from microsoft" )
670+ return
671+ }
672+
645673 // Update time of calendar event in microsoft
646674 requestBody := graphmodels .NewEvent ()
647675
@@ -660,7 +688,7 @@ func (s Server) PatchAPIRescheduleRequestRequestIDAccept(w http.ResponseWriter,
660688 requestBody .SetEnd (end )
661689
662690 // Make the microsoft API call
663- _ , err = graph .Me ().Events ().ByEventId (req . MsftMeetingID ).Patch (ctx , requestBody , nil )
691+ _ , err = graph .Me ().Events ().ByEventId (* msftMeeting . GetId () ).Patch (ctx , requestBody , nil )
664692 if err != nil {
665693 logger .Error ("failed to update event in microsoft" , zap .Error (err ))
666694 sendError (w , http .StatusBadGateway , "Failed to update event in microsoft" )
@@ -708,13 +736,8 @@ func (s Server) PatchAPIRescheduleRequestRequestIDAccept(w http.ResponseWriter,
708736
709737 // Notify all attendees
710738
711- meetingData , err := graph .Me ().Events ().ByEventId (req .MsftMeetingID ).Get (ctx , nil )
712- if err != nil {
713- logger .Error ("failed to get meeting data from microsoft" , zap .Error (err ))
714- }
715-
716739 var attendees []Attendee
717- if attendees , err = parseMSFTAttendees (meetingData ); err != nil {
740+ if attendees , err = parseMSFTAttendees (msftMeeting ); err != nil {
718741 logger .Error ("failed to parse msft attendees" , zap .Error (err ))
719742 sendError (w , http .StatusBadRequest , "failed to parse the msft attendees received" )
720743 return
@@ -754,12 +777,10 @@ func (s Server) PostAPIRescheduleRequestRequestIDComplete(w http.ResponseWriter,
754777
755778 s .PostAPICalendarMe (w , r )
756779
757- if r .Response .StatusCode == http .StatusOK {
758- // Delete request as event has been created for it
759- err := s .DB .DeleteRequest (ctx , parRequestID )
760- if err != nil {
761- logger .Error ("failed to delete request after creating new event" , zap .Error (err ))
762- }
780+ // Delete request as event has been created for it
781+ err := s .DB .DeleteRequest (ctx , parRequestID )
782+ if err != nil {
783+ logger .Error ("failed to delete request after creating new event" , zap .Error (err ))
763784 }
764785}
765786
0 commit comments