Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Side by Side Diff: chrome/browser/drive/drive_api_service.cc

Issue 22909041: Refactor GetAboutRequest and GetApplistRequest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "chrome/browser/drive/drive_api_service.h" 5 #include "chrome/browser/drive/drive_api_service.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/strings/stringprintf.h" 11 #include "base/strings/stringprintf.h"
12 #include "base/task_runner_util.h" 12 #include "base/task_runner_util.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/drive/drive_api_util.h" 14 #include "chrome/browser/drive/drive_api_util.h"
15 #include "chrome/browser/google_apis/auth_service.h" 15 #include "chrome/browser/google_apis/auth_service.h"
16 #include "chrome/browser/google_apis/drive_api_parser.h" 16 #include "chrome/browser/google_apis/drive_api_parser.h"
17 #include "chrome/browser/google_apis/drive_api_requests.h" 17 #include "chrome/browser/google_apis/drive_api_requests.h"
18 #include "chrome/browser/google_apis/gdata_errorcode.h" 18 #include "chrome/browser/google_apis/gdata_errorcode.h"
19 #include "chrome/browser/google_apis/gdata_wapi_parser.h" 19 #include "chrome/browser/google_apis/gdata_wapi_parser.h"
20 #include "chrome/browser/google_apis/gdata_wapi_requests.h" 20 #include "chrome/browser/google_apis/gdata_wapi_requests.h"
21 #include "chrome/browser/google_apis/request_sender.h" 21 #include "chrome/browser/google_apis/request_sender.h"
22 #include "content/public/browser/browser_thread.h" 22 #include "content/public/browser/browser_thread.h"
23 23
24 using content::BrowserThread; 24 using content::BrowserThread;
25 using google_apis::AppList; 25 using google_apis::AppList;
26 using google_apis::AppListCallback;
26 using google_apis::AuthStatusCallback; 27 using google_apis::AuthStatusCallback;
27 using google_apis::AuthorizeAppCallback; 28 using google_apis::AuthorizeAppCallback;
28 using google_apis::CancelCallback; 29 using google_apis::CancelCallback;
29 using google_apis::ChangeList; 30 using google_apis::ChangeList;
30 using google_apis::DownloadActionCallback; 31 using google_apis::DownloadActionCallback;
31 using google_apis::EntryActionCallback; 32 using google_apis::EntryActionCallback;
32 using google_apis::FileList; 33 using google_apis::FileList;
33 using google_apis::FileResource; 34 using google_apis::FileResource;
34 using google_apis::GDATA_OTHER_ERROR; 35 using google_apis::GDATA_OTHER_ERROR;
35 using google_apis::GDATA_PARSE_ERROR; 36 using google_apis::GDATA_PARSE_ERROR;
36 using google_apis::GDataErrorCode; 37 using google_apis::GDataErrorCode;
37 using google_apis::GetAboutRequest; 38 using google_apis::AboutResourceCallback;
38 using google_apis::GetAboutResourceCallback;
39 using google_apis::GetAppListCallback;
40 using google_apis::GetApplistRequest;
41 using google_apis::GetChangelistRequest; 39 using google_apis::GetChangelistRequest;
42 using google_apis::GetContentCallback; 40 using google_apis::GetContentCallback;
43 using google_apis::GetFileRequest; 41 using google_apis::GetFileRequest;
44 using google_apis::GetFilelistRequest; 42 using google_apis::GetFilelistRequest;
45 using google_apis::GetResourceEntryCallback; 43 using google_apis::GetResourceEntryCallback;
46 using google_apis::GetResourceEntryRequest; 44 using google_apis::GetResourceEntryRequest;
47 using google_apis::GetResourceListCallback; 45 using google_apis::GetResourceListCallback;
48 using google_apis::GetShareUrlCallback; 46 using google_apis::GetShareUrlCallback;
49 using google_apis::HTTP_NOT_IMPLEMENTED; 47 using google_apis::HTTP_NOT_IMPLEMENTED;
50 using google_apis::HTTP_SUCCESS; 48 using google_apis::HTTP_SUCCESS;
51 using google_apis::InitiateUploadCallback; 49 using google_apis::InitiateUploadCallback;
52 using google_apis::Link; 50 using google_apis::Link;
53 using google_apis::ProgressCallback; 51 using google_apis::ProgressCallback;
54 using google_apis::RequestSender; 52 using google_apis::RequestSender;
55 using google_apis::ResourceEntry; 53 using google_apis::ResourceEntry;
56 using google_apis::ResourceList; 54 using google_apis::ResourceList;
57 using google_apis::UploadRangeCallback; 55 using google_apis::UploadRangeCallback;
58 using google_apis::UploadRangeResponse; 56 using google_apis::UploadRangeResponse;
57 using google_apis::drive::AboutGetRequest;
58 using google_apis::drive::AppsListRequest;
59 using google_apis::drive::ContinueGetFileListRequest; 59 using google_apis::drive::ContinueGetFileListRequest;
60 using google_apis::drive::CopyResourceRequest; 60 using google_apis::drive::CopyResourceRequest;
61 using google_apis::drive::CreateDirectoryRequest; 61 using google_apis::drive::CreateDirectoryRequest;
62 using google_apis::drive::DeleteResourceRequest; 62 using google_apis::drive::DeleteResourceRequest;
63 using google_apis::drive::DownloadFileRequest; 63 using google_apis::drive::DownloadFileRequest;
64 using google_apis::drive::GetUploadStatusRequest; 64 using google_apis::drive::GetUploadStatusRequest;
65 using google_apis::drive::InitiateUploadExistingFileRequest; 65 using google_apis::drive::InitiateUploadExistingFileRequest;
66 using google_apis::drive::InitiateUploadNewFileRequest; 66 using google_apis::drive::InitiateUploadNewFileRequest;
67 using google_apis::drive::InsertResourceRequest; 67 using google_apis::drive::InsertResourceRequest;
68 using google_apis::drive::MoveResourceRequest; 68 using google_apis::drive::MoveResourceRequest;
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 scoped_ptr<ResourceEntry> entry = 174 scoped_ptr<ResourceEntry> entry =
175 ResourceEntry::CreateFromFileResource(*value); 175 ResourceEntry::CreateFromFileResource(*value);
176 if (!entry) { 176 if (!entry) {
177 callback.Run(GDATA_PARSE_ERROR, scoped_ptr<ResourceEntry>()); 177 callback.Run(GDATA_PARSE_ERROR, scoped_ptr<ResourceEntry>());
178 return; 178 return;
179 } 179 }
180 180
181 callback.Run(error, entry.Pass()); 181 callback.Run(error, entry.Pass());
182 } 182 }
183 183
184 // Parses the JSON value to AppList runs |callback| on the UI thread
185 // once parsing is done.
186 void ParseAppListAndRun(const google_apis::GetAppListCallback& callback,
187 google_apis::GDataErrorCode error,
188 scoped_ptr<base::Value> value) {
189 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
190 DCHECK(!callback.is_null());
191
192 if (!value) {
193 callback.Run(error, scoped_ptr<google_apis::AppList>());
194 return;
195 }
196
197 // Parsing AppList is cheap enough to do on UI thread.
198 scoped_ptr<google_apis::AppList> app_list =
199 google_apis::AppList::CreateFrom(*value);
200 if (!app_list) {
201 callback.Run(google_apis::GDATA_PARSE_ERROR,
202 scoped_ptr<google_apis::AppList>());
203 return;
204 }
205
206 callback.Run(error, app_list.Pass());
207 }
208
209 // Parses the FileResource value to ResourceEntry for upload range request, 184 // Parses the FileResource value to ResourceEntry for upload range request,
210 // and runs |callback| on the UI thread. 185 // and runs |callback| on the UI thread.
211 void ParseResourceEntryForUploadRangeAndRun( 186 void ParseResourceEntryForUploadRangeAndRun(
212 const UploadRangeCallback& callback, 187 const UploadRangeCallback& callback,
213 const UploadRangeResponse& response, 188 const UploadRangeResponse& response,
214 scoped_ptr<FileResource> value) { 189 scoped_ptr<FileResource> value) {
215 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 190 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
216 DCHECK(!callback.is_null()); 191 DCHECK(!callback.is_null());
217 192
218 if (!value) { 193 if (!value) {
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 return sender_->StartRequestWithRetry( 469 return sender_->StartRequestWithRetry(
495 new GetResourceEntryRequest(sender_.get(), 470 new GetResourceEntryRequest(sender_.get(),
496 wapi_url_generator_, 471 wapi_url_generator_,
497 resource_id, 472 resource_id,
498 embed_origin, 473 embed_origin,
499 base::Bind(&util::ParseShareUrlAndRun, 474 base::Bind(&util::ParseShareUrlAndRun,
500 callback))); 475 callback)));
501 } 476 }
502 477
503 CancelCallback DriveAPIService::GetAboutResource( 478 CancelCallback DriveAPIService::GetAboutResource(
504 const GetAboutResourceCallback& callback) { 479 const AboutResourceCallback& callback) {
505 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 480 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
506 DCHECK(!callback.is_null()); 481 DCHECK(!callback.is_null());
507 482
508 return sender_->StartRequestWithRetry( 483 return sender_->StartRequestWithRetry(
509 new GetAboutRequest( 484 new AboutGetRequest(sender_.get(), url_generator_, callback));
510 sender_.get(),
511 url_generator_,
512 callback));
513 } 485 }
514 486
515 CancelCallback DriveAPIService::GetAppList(const GetAppListCallback& callback) { 487 CancelCallback DriveAPIService::GetAppList(const AppListCallback& callback) {
516 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 488 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
517 DCHECK(!callback.is_null()); 489 DCHECK(!callback.is_null());
518 490
519 return sender_->StartRequestWithRetry(new GetApplistRequest( 491 return sender_->StartRequestWithRetry(
520 sender_.get(), 492 new AppsListRequest(sender_.get(), url_generator_, callback));
521 url_generator_,
522 base::Bind(&ParseAppListAndRun, callback)));
523 } 493 }
524 494
525 CancelCallback DriveAPIService::DownloadFile( 495 CancelCallback DriveAPIService::DownloadFile(
526 const base::FilePath& local_cache_path, 496 const base::FilePath& local_cache_path,
527 const std::string& resource_id, 497 const std::string& resource_id,
528 const DownloadActionCallback& download_action_callback, 498 const DownloadActionCallback& download_action_callback,
529 const GetContentCallback& get_content_callback, 499 const GetContentCallback& get_content_callback,
530 const ProgressCallback& progress_callback) { 500 const ProgressCallback& progress_callback) {
531 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 501 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
532 DCHECK(!download_action_callback.is_null()); 502 DCHECK(!download_action_callback.is_null());
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 if (CanSendRequest()) { 796 if (CanSendRequest()) {
827 FOR_EACH_OBSERVER( 797 FOR_EACH_OBSERVER(
828 DriveServiceObserver, observers_, OnReadyToSendRequests()); 798 DriveServiceObserver, observers_, OnReadyToSendRequests());
829 } else if (!HasRefreshToken()) { 799 } else if (!HasRefreshToken()) {
830 FOR_EACH_OBSERVER( 800 FOR_EACH_OBSERVER(
831 DriveServiceObserver, observers_, OnRefreshTokenInvalid()); 801 DriveServiceObserver, observers_, OnRefreshTokenInvalid());
832 } 802 }
833 } 803 }
834 804
835 } // namespace drive 805 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/drive/drive_api_service.h ('k') | chrome/browser/drive/drive_service_interface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698