Skip to content

Commit 25a9fbf

Browse files
authored
Fix base album url in MicrosoftMediaImporter (#1220)
* Fix base album url in MicrosoftMediaImporter This should always be set to "photos" because photos * Fix tests
1 parent 30c0180 commit 25a9fbf

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

extensions/data-transfer/portability-data-transfer-microsoft/src/main/java/org/datatransferproject/transfer/microsoft/media/MicrosoftMediaImporter.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,17 @@ public MicrosoftMediaImporter(String baseUrl, OkHttpClient client, ObjectMapper
7575
TemporaryPerJobDataStore jobStore, Monitor monitor,
7676
MicrosoftCredentialFactory credentialFactory) {
7777

78-
createFolderUrl = baseUrl + "/v1.0/me/drive/special/photo-video/children";
78+
// NOTE: "special/photos" is a specific folder in One Drive that corresponds to items that
79+
// should appear in https://photos.onedrive.com/, for more information see:
80+
// https://learn.microsoft.com/en-us/onedrive/developer/rest-api/api/drive_get_specialfolder?#special-folder-names
81+
createFolderUrl = baseUrl + "/v1.0/me/drive/special/photos/children";
82+
albumlessMediaUrlTemplate =
83+
baseUrl + "/v1.0/me/drive/special/photos:/%s:/createUploadSession%s";
84+
7985
// first param is the folder id, second param is the file name
8086
// /me/drive/items/{parent-id}:/{filename}:/content;
8187
uploadMediaUrlTemplate = baseUrl + "/v1.0/me/drive/items/%s:/%s:/createUploadSession%s";
82-
albumlessMediaUrlTemplate =
83-
baseUrl + "/v1.0/me/drive/special/photo-video:/%s:/createUploadSession%s";
88+
8489

8590
this.client = client;
8691
this.objectMapper = objectMapper;

extensions/data-transfer/portability-data-transfer-microsoft/src/test/java/org/datatransferproject/transfer/microsoft/media/MicrosoftMediaImporterTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public void testCleanAlbumNames() throws Exception {
119119
}
120120

121121
return r.url().toString().equals(
122-
"https://www.baseurl.com/v1.0/me/drive/special/photo-video/children")
122+
"https://www.baseurl.com/v1.0/me/drive/special/photos/children")
123123
&& body.contains("album1_");
124124
}));
125125
Response response = mock(Response.class);
@@ -151,7 +151,7 @@ public void testImportItemPermissionDenied() throws Exception {
151151
doReturn(call).when(client).newCall(
152152
argThat((Request r)
153153
-> r.url().toString().equals(
154-
"https://www.baseurl.com/v1.0/me/drive/special/photo-video/children")));
154+
"https://www.baseurl.com/v1.0/me/drive/special/photos/children")));
155155
Response response = mock(Response.class);
156156
ResponseBody body = mock(ResponseBody.class);
157157
when(body.bytes())
@@ -189,7 +189,7 @@ public void testImportItemAllSuccess() throws Exception {
189189
doReturn(call).when(client).newCall(
190190
argThat((Request r)
191191
-> r.url().toString().equals(
192-
"https://www.baseurl.com/v1.0/me/drive/special/photo-video/children")));
192+
"https://www.baseurl.com/v1.0/me/drive/special/photos/children")));
193193
Response response = mock(Response.class);
194194
ResponseBody body = mock(ResponseBody.class);
195195
when(body.bytes())

0 commit comments

Comments
 (0)