From d9c8c47e028a1f90f671f7eb335e92112a56ee83 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Sun, 22 Mar 2020 12:21:37 +0000 Subject: [PATCH] onedrive: add missing drive on config - fixes #4068 Before this change we queries /me/drives for a list of the users drives and asked the user to choose. Sometimes this does not return the users main drive for reasons unknown. After this change we query /me/drives first then /me/drive and add that to the list of drives if it wasn't already there. --- backend/onedrive/onedrive.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/backend/onedrive/onedrive.go b/backend/onedrive/onedrive.go index 8ee8f9997..e560fb0b1 100644 --- a/backend/onedrive/onedrive.go +++ b/backend/onedrive/onedrive.go @@ -184,6 +184,28 @@ func init() { log.Fatalf("Failed to query available drives: %v", err) } + // Also call /me/drive as sometimes /me/drives doesn't return it #4068 + if opts.Path == "/me/drives" { + opts.Path = "/me/drive" + meDrive := driveResource{} + _, err := srv.CallJSON(ctx, &opts, nil, &meDrive) + if err != nil { + log.Fatalf("Failed to query available drives: %v", err) + } + found := false + for _, drive := range drives.Drives { + if drive.DriveID == meDrive.DriveID { + found = true + break + } + } + // add the me drive if not found already + if !found { + fs.Debugf(nil, "Adding %v to drives list from /me/drive", meDrive) + drives.Drives = append(drives.Drives, meDrive) + } + } + if len(drives.Drives) == 0 { log.Fatalf("No drives found") } else {