Skip to content

feat(graph): accept user name or id in GetUserDrive - #3243

Open
dschmidt wants to merge 1 commit into
mainfrom
fix/graph-get-user-drive-id-or-name
Open

feat(graph): accept user name or id in GetUserDrive#3243
dschmidt wants to merge 1 commit into
mainfrom
fix/graph-get-user-drive-id-or-name

Conversation

@dschmidt

@dschmidt dschmidt commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Problem

GET /v1.0/users/{user-id}/drive (GetUserDrive) only resolved the personal drive when the {user-id} path segment was the user's opaque id. A user name, which the sibling GET /v1.0/users/{user-id} (GetUser) accepts, returned 404 no drive returned from storage.

Fix

The handler passed the raw path segment straight into the storage space filter, which only matches the opaque id. It now resolves the segment through the identity backend first (the same identityBackend.GetUser(nameOrID) idiom used by GetUser/DeleteUser), skipping the /me/drive self case. Both an id and a name work; the empty-segment case (own drive) is unchanged.

Also added GetUserDrive to the Service interface, consistent with the other user handlers (GetUser, GetMe, ...), so it is callable via the interface in tests.

Tests

Added a focused test asserting the name is resolved via the identity backend before the storage lookup. Existing graph service tests stay green.

@dschmidt
dschmidt force-pushed the fix/graph-get-user-drive-id-or-name branch from fa8f9ff to d7c4118 Compare August 5, 2026 11:08
@dschmidt dschmidt changed the title fix(graph): accept user name or id in GetUserDrive feat(graph): accept user name or id in GetUserDrive Aug 5, 2026
GetUserDrive only resolved the personal drive when the {user-id} path
segment was the user's opaque id; a user name (which GetUser accepts)
returned 404. Resolve the segment through the identity backend first
(skipping the /me/drive self case), so both an id and a name work. Also
add GetUserDrive to the Service interface, consistent with the other
user handlers.
@dschmidt
dschmidt force-pushed the fix/graph-get-user-drive-id-or-name branch from d7c4118 to d806844 Compare August 5, 2026 11:09
@codacy-production

codacy-production Bot commented Aug 5, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 340 duplication

Metric Results
Duplication 340

View in Codacy

🟢 Coverage 55.56% diff coverage · +0.04% coverage variation

Metric Results
Coverage variation +0.04% coverage variation (-1.00%)
Diff coverage 55.56% diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (76ff13b) 84009 19267 22.93%
Head commit (d806844) 84017 (+8) 19300 (+33) 22.97% (+0.04%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#3243) 9 5 55.56%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant