OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "google_apis/drive/drive_api_url_generator.h" | 5 #include "google_apis/drive/drive_api_url_generator.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
11 #include "google_apis/drive/drive_switches.h" | 11 #include "google_apis/drive/drive_switches.h" |
12 #include "google_apis/google_api_keys.h" | 12 #include "google_apis/google_api_keys.h" |
13 #include "net/base/escape.h" | 13 #include "net/base/escape.h" |
14 #include "net/base/url_util.h" | 14 #include "net/base/url_util.h" |
15 | 15 |
16 namespace google_apis { | 16 namespace google_apis { |
17 | 17 |
18 namespace { | 18 namespace { |
19 | 19 |
20 // Hard coded URLs for communication with a google drive server. | 20 // Hard coded URLs for communication with a google drive server. |
21 // TODO(yamaguchi): Make a utility function to compose some of these URLs by a | 21 // TODO(yamaguchi): Make a utility function to compose some of these URLs by a |
22 // version and a resource name. | 22 // version and a resource name. |
23 const char kDriveV2AboutUrl[] = "drive/v2/about"; | 23 const char kDriveV2AboutUrl[] = "drive/v2/about"; |
24 const char kDriveV2AppsUrl[] = "drive/v2/apps"; | 24 const char kDriveV2AppsUrl[] = "drive/v2/apps"; |
25 const char kDriveV2ChangelistUrl[] = "drive/v2/changes"; | 25 const char kDriveV2ChangelistUrl[] = "drive/v2/changes"; |
26 const char kDriveV2BetaChangelistUrl[] = "drive/v2beta/changes"; | |
27 const char kDriveV2FilesUrl[] = "drive/v2/files"; | 26 const char kDriveV2FilesUrl[] = "drive/v2/files"; |
28 const char kDriveV2BetaFilesUrl[] = "drive/v2beta/files"; | |
29 const char kDriveV2FileUrlPrefix[] = "drive/v2/files/"; | 27 const char kDriveV2FileUrlPrefix[] = "drive/v2/files/"; |
30 const char kDriveV2BetaFileUrlPrefix[] = "drive/v2beta/files/"; | |
31 const char kDriveV2ChildrenUrlFormat[] = "drive/v2/files/%s/children"; | 28 const char kDriveV2ChildrenUrlFormat[] = "drive/v2/files/%s/children"; |
32 const char kDriveV2ChildrenUrlForRemovalFormat[] = | 29 const char kDriveV2ChildrenUrlForRemovalFormat[] = |
33 "drive/v2/files/%s/children/%s"; | 30 "drive/v2/files/%s/children/%s"; |
34 const char kDriveV2FileCopyUrlFormat[] = "drive/v2/files/%s/copy"; | 31 const char kDriveV2FileCopyUrlFormat[] = "drive/v2/files/%s/copy"; |
35 const char kDriveV2FileDeleteUrlFormat[] = "drive/v2/files/%s"; | 32 const char kDriveV2FileDeleteUrlFormat[] = "drive/v2/files/%s"; |
36 const char kDriveV2FileTrashUrlFormat[] = "drive/v2/files/%s/trash"; | 33 const char kDriveV2FileTrashUrlFormat[] = "drive/v2/files/%s/trash"; |
37 const char kDriveV2UploadNewFileUrl[] = "upload/drive/v2/files"; | 34 const char kDriveV2UploadNewFileUrl[] = "upload/drive/v2/files"; |
38 const char kDriveV2UploadExistingFileUrlPrefix[] = "upload/drive/v2/files/"; | 35 const char kDriveV2UploadExistingFileUrlPrefix[] = "upload/drive/v2/files/"; |
39 const char kDriveV2BatchUploadUrl[] = "upload/drive"; | 36 const char kDriveV2BatchUploadUrl[] = "upload/drive"; |
40 const char kDriveV2PermissionsUrlFormat[] = "drive/v2/files/%s/permissions"; | 37 const char kDriveV2PermissionsUrlFormat[] = "drive/v2/files/%s/permissions"; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 return base_url_.Resolve(base::StringPrintf( | 96 return base_url_.Resolve(base::StringPrintf( |
100 kDriveV2AppsDeleteUrlFormat, net::EscapePath(app_id).c_str())); | 97 kDriveV2AppsDeleteUrlFormat, net::EscapePath(app_id).c_str())); |
101 } | 98 } |
102 | 99 |
103 GURL DriveApiUrlGenerator::GetFilesGetUrl(const std::string& file_id, | 100 GURL DriveApiUrlGenerator::GetFilesGetUrl(const std::string& file_id, |
104 bool use_internal_endpoint, | 101 bool use_internal_endpoint, |
105 const GURL& embed_origin) const { | 102 const GURL& embed_origin) const { |
106 const char* url_prefix = nullptr; | 103 const char* url_prefix = nullptr; |
107 if (use_internal_endpoint) | 104 if (use_internal_endpoint) |
108 url_prefix = kDriveV2InternalFileUrlPrefix; | 105 url_prefix = kDriveV2InternalFileUrlPrefix; |
109 else if (enable_team_drives_) | |
110 url_prefix = kDriveV2BetaFileUrlPrefix; | |
111 else | 106 else |
112 url_prefix = kDriveV2FileUrlPrefix; | 107 url_prefix = kDriveV2FileUrlPrefix; |
113 | 108 |
114 GURL url = base_url_.Resolve(url_prefix + net::EscapePath(file_id)); | 109 GURL url = base_url_.Resolve(url_prefix + net::EscapePath(file_id)); |
115 | 110 |
116 if (enable_team_drives_) | 111 if (enable_team_drives_) |
117 url = net::AppendOrReplaceQueryParameter(url, kSupportsTeamDrives, "true"); | 112 url = net::AppendOrReplaceQueryParameter(url, kSupportsTeamDrives, "true"); |
118 | 113 |
119 if (!embed_origin.is_empty()) { | 114 if (!embed_origin.is_empty()) { |
120 // Construct a valid serialized embed origin from an url, according to | 115 // Construct a valid serialized embed origin from an url, according to |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 | 169 |
175 if (!visibility.empty()) | 170 if (!visibility.empty()) |
176 url = net::AppendOrReplaceQueryParameter(url, "visibility", visibility); | 171 url = net::AppendOrReplaceQueryParameter(url, "visibility", visibility); |
177 | 172 |
178 return url; | 173 return url; |
179 } | 174 } |
180 | 175 |
181 GURL DriveApiUrlGenerator::GetFilesListUrl(int max_results, | 176 GURL DriveApiUrlGenerator::GetFilesListUrl(int max_results, |
182 const std::string& page_token, | 177 const std::string& page_token, |
183 const std::string& q) const { | 178 const std::string& q) const { |
184 GURL url; | 179 GURL url = base_url_.Resolve(kDriveV2FilesUrl); |
185 if (enable_team_drives_) { | 180 if (enable_team_drives_) { |
186 url = base_url_.Resolve(kDriveV2BetaFilesUrl); | |
187 url = net::AppendOrReplaceQueryParameter(url, kSupportsTeamDrives, "true"); | 181 url = net::AppendOrReplaceQueryParameter(url, kSupportsTeamDrives, "true"); |
188 url = net::AppendOrReplaceQueryParameter(url, kIncludeTeamDriveItems, | 182 url = net::AppendOrReplaceQueryParameter(url, kIncludeTeamDriveItems, |
189 "true"); | 183 "true"); |
190 } else { | |
191 url = base_url_.Resolve(kDriveV2FilesUrl); | |
192 } | 184 } |
193 // maxResults is 100 by default. | 185 // maxResults is 100 by default. |
194 if (max_results != 100) { | 186 if (max_results != 100) { |
195 url = net::AppendOrReplaceQueryParameter( | 187 url = net::AppendOrReplaceQueryParameter( |
196 url, "maxResults", base::IntToString(max_results)); | 188 url, "maxResults", base::IntToString(max_results)); |
197 } | 189 } |
198 | 190 |
199 if (!page_token.empty()) | 191 if (!page_token.empty()) |
200 url = net::AppendOrReplaceQueryParameter(url, "pageToken", page_token); | 192 url = net::AppendOrReplaceQueryParameter(url, "pageToken", page_token); |
201 | 193 |
(...skipping 12 matching lines...) Expand all Loading... |
214 return base_url_.Resolve(base::StringPrintf( | 206 return base_url_.Resolve(base::StringPrintf( |
215 kDriveV2FileTrashUrlFormat, net::EscapePath(file_id).c_str())); | 207 kDriveV2FileTrashUrlFormat, net::EscapePath(file_id).c_str())); |
216 } | 208 } |
217 | 209 |
218 GURL DriveApiUrlGenerator::GetChangesListUrl(bool include_deleted, | 210 GURL DriveApiUrlGenerator::GetChangesListUrl(bool include_deleted, |
219 int max_results, | 211 int max_results, |
220 const std::string& page_token, | 212 const std::string& page_token, |
221 int64_t start_change_id) const { | 213 int64_t start_change_id) const { |
222 DCHECK_GE(start_change_id, 0); | 214 DCHECK_GE(start_change_id, 0); |
223 | 215 |
224 GURL url; | 216 GURL url = base_url_.Resolve(kDriveV2ChangelistUrl); |
225 if (enable_team_drives_) { | 217 if (enable_team_drives_) { |
226 url = base_url_.Resolve(kDriveV2BetaChangelistUrl); | |
227 url = net::AppendOrReplaceQueryParameter(url, kSupportsTeamDrives, "true"); | 218 url = net::AppendOrReplaceQueryParameter(url, kSupportsTeamDrives, "true"); |
228 url = net::AppendOrReplaceQueryParameter(url, kIncludeTeamDriveItems, | 219 url = net::AppendOrReplaceQueryParameter(url, kIncludeTeamDriveItems, |
229 "true"); | 220 "true"); |
230 } else { | |
231 url = base_url_.Resolve(kDriveV2ChangelistUrl); | |
232 } | 221 } |
233 // includeDeleted is "true" by default. | 222 // includeDeleted is "true" by default. |
234 if (!include_deleted) | 223 if (!include_deleted) |
235 url = net::AppendOrReplaceQueryParameter(url, "includeDeleted", "false"); | 224 url = net::AppendOrReplaceQueryParameter(url, "includeDeleted", "false"); |
236 | 225 |
237 // maxResults is "100" by default. | 226 // maxResults is "100" by default. |
238 if (max_results != 100) { | 227 if (max_results != 100) { |
239 url = net::AppendOrReplaceQueryParameter( | 228 url = net::AppendOrReplaceQueryParameter( |
240 url, "maxResults", base::IntToString(max_results)); | 229 url, "maxResults", base::IntToString(max_results)); |
241 } | 230 } |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 base::StringPrintf( | 328 base::StringPrintf( |
340 crop ? kDriveV2ThumbnailUrlWithCropFormat : kDriveV2ThumbnailUrlFormat, | 329 crop ? kDriveV2ThumbnailUrlWithCropFormat : kDriveV2ThumbnailUrlFormat, |
341 net::EscapePath(resource_id).c_str(), width, height)); | 330 net::EscapePath(resource_id).c_str(), width, height)); |
342 } | 331 } |
343 | 332 |
344 GURL DriveApiUrlGenerator::GetBatchUploadUrl() const { | 333 GURL DriveApiUrlGenerator::GetBatchUploadUrl() const { |
345 return base_url_.Resolve(kDriveV2BatchUploadUrl); | 334 return base_url_.Resolve(kDriveV2BatchUploadUrl); |
346 } | 335 } |
347 | 336 |
348 } // namespace google_apis | 337 } // namespace google_apis |
OLD | NEW |