Skip to content

Commit

Permalink
onedrive: add missing drive on config - fixes #4068
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ncw committed Mar 24, 2020
1 parent 243a868 commit d9c8c47
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions backend/onedrive/onedrive.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit d9c8c47

Please sign in to comment.