Skip to content

Commit 8755e1e

Browse files
committed
Event from owner can be fetched
1 parent bc57b87 commit 8755e1e

2 files changed

Lines changed: 31 additions & 32 deletions

File tree

api/reschedule.go

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
msgraphsdkgo "github.com/microsoftgraph/msgraph-sdk-go"
1212
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
1313
"github.com/microsoftgraph/msgraph-sdk-go/users"
14-
"go.uber.org/zap"
1514
)
1615

1716
// durationToISO formats a positive duration in the ISO 8601 format.
@@ -231,22 +230,19 @@ func processNewMeetingInfo(ctx context.Context,
231230
graph *msgraphsdkgo.GraphServiceClient,
232231
s Server,
233232
msftMeetingID string,
234-
logger zap.SugaredLogger,
235233
userEmail string,
236234
) (database.Meeting, error) {
237235
// Fetch meeting data from microsft
238236

239-
msftMeeting, err := getUsersEvent(ctx, graph, logger, msftMeetingID, userEmail)
237+
msftMeeting, err := getUsersEvent(ctx, graph, msftMeetingID)
240238
if err != nil {
241-
logger.Error("failed to get meeting data from microsoft", zap.Error(err))
242239
return database.Meeting{}, fmt.Errorf("failed to get meeting data from microsoft: %w", err)
243240
}
244241

245242
var startTime time.Time
246243
startTime, err = time.Parse(time.RFC3339Nano, *msftMeeting.GetStart().GetDateTime()+"Z")
247244
if err != nil {
248-
logger.Error("failed to get parse start time", zap.Error(err))
249-
return database.Meeting{}, err
245+
return database.Meeting{}, fmt.Errorf("failed to get parse start time: %w", err)
250246
}
251247

252248
newMeetingParams := NewMeetingAndPrefsParams{
@@ -257,18 +253,15 @@ func processNewMeetingInfo(ctx context.Context,
257253

258254
meeting, err := createNewMeetingsAndPrefs(ctx, newMeetingParams, s, msftMeetingID)
259255
if err != nil {
260-
logger.Error("failed to get data from new db.Meeting", zap.Error(err))
261-
return database.Meeting{}, err
256+
return database.Meeting{}, fmt.Errorf("failed to get data from new db.Meeting: %w", err)
262257
}
263258

264259
return meeting, nil
265260
}
266261

267262
func getUsersEvent(ctx context.Context,
268263
graph *msgraphsdkgo.GraphServiceClient,
269-
logger zap.SugaredLogger,
270264
msftID string,
271-
userEmail string,
272265
) (graphmodels.Eventable, error) {
273266
queryFilter := "iCalUId eq '" + msftID + "'"
274267

@@ -279,10 +272,8 @@ func getUsersEvent(ctx context.Context,
279272
},
280273
}
281274

282-
// msftMeetingRes, err := graph.Me().Events().Get(ctx, &requestConfig)
283-
msftMeetingRes, err := graph.Users().ByUserId(userEmail).Events().Get(ctx, &requestConfig)
275+
msftMeetingRes, err := graph.Me().Events().Get(ctx, &requestConfig)
284276
if err != nil {
285-
logger.Error("failed to get meeting data from microsoft", zap.Error(err))
286277
return nil, fmt.Errorf("failed to get meeting data from microsoft: %w", err)
287278
}
288279

@@ -291,6 +282,5 @@ func getUsersEvent(ctx context.Context,
291282
return msftMeetingRes.GetValue()[0], nil
292283
}
293284

294-
logger.Error("failed to get meeting data from microsoft: returned empty array")
295285
return nil, errors.New("failed to get meeting data from microsoft: returned empty array")
296286
}

api/rescheduling_impl.go

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)