| 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 "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" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 using google_apis::ProgressCallback; | 48 using google_apis::ProgressCallback; |
| 49 using google_apis::RequestSender; | 49 using google_apis::RequestSender; |
| 50 using google_apis::ResourceEntry; | 50 using google_apis::ResourceEntry; |
| 51 using google_apis::ResourceList; | 51 using google_apis::ResourceList; |
| 52 using google_apis::UploadRangeCallback; | 52 using google_apis::UploadRangeCallback; |
| 53 using google_apis::UploadRangeResponse; | 53 using google_apis::UploadRangeResponse; |
| 54 using google_apis::drive::AboutGetRequest; | 54 using google_apis::drive::AboutGetRequest; |
| 55 using google_apis::drive::AppsListRequest; | 55 using google_apis::drive::AppsListRequest; |
| 56 using google_apis::drive::ChangesListRequest; | 56 using google_apis::drive::ChangesListRequest; |
| 57 using google_apis::drive::ContinueGetFileListRequest; | 57 using google_apis::drive::ContinueGetFileListRequest; |
| 58 using google_apis::drive::CreateDirectoryRequest; | |
| 59 using google_apis::drive::DeleteResourceRequest; | 58 using google_apis::drive::DeleteResourceRequest; |
| 60 using google_apis::drive::DownloadFileRequest; | 59 using google_apis::drive::DownloadFileRequest; |
| 61 using google_apis::drive::FilesCopyRequest; | 60 using google_apis::drive::FilesCopyRequest; |
| 62 using google_apis::drive::FilesGetRequest; | 61 using google_apis::drive::FilesGetRequest; |
| 62 using google_apis::drive::FilesInsertRequest; |
| 63 using google_apis::drive::FilesPatchRequest; | 63 using google_apis::drive::FilesPatchRequest; |
| 64 using google_apis::drive::FilesListRequest; | 64 using google_apis::drive::FilesListRequest; |
| 65 using google_apis::drive::GetUploadStatusRequest; | 65 using google_apis::drive::GetUploadStatusRequest; |
| 66 using google_apis::drive::InitiateUploadExistingFileRequest; | 66 using google_apis::drive::InitiateUploadExistingFileRequest; |
| 67 using google_apis::drive::InitiateUploadNewFileRequest; | 67 using google_apis::drive::InitiateUploadNewFileRequest; |
| 68 using google_apis::drive::InsertResourceRequest; | 68 using google_apis::drive::InsertResourceRequest; |
| 69 using google_apis::drive::ResumeUploadRequest; | 69 using google_apis::drive::ResumeUploadRequest; |
| 70 using google_apis::drive::TrashResourceRequest; | 70 using google_apis::drive::TrashResourceRequest; |
| 71 | 71 |
| 72 namespace drive { | 72 namespace drive { |
| 73 | 73 |
| 74 namespace { | 74 namespace { |
| 75 | 75 |
| 76 // OAuth2 scopes for Drive API. | 76 // OAuth2 scopes for Drive API. |
| 77 const char kDriveScope[] = "https://www.googleapis.com/auth/drive"; | 77 const char kDriveScope[] = "https://www.googleapis.com/auth/drive"; |
| 78 const char kDriveAppsReadonlyScope[] = | 78 const char kDriveAppsReadonlyScope[] = |
| 79 "https://www.googleapis.com/auth/drive.apps.readonly"; | 79 "https://www.googleapis.com/auth/drive.apps.readonly"; |
| 80 | 80 |
| 81 // Mime type to create a directory. |
| 82 const char kFolderMimeType[] = "application/vnd.google-apps.folder"; |
| 83 |
| 81 // Expected max number of files resources in a http request. | 84 // Expected max number of files resources in a http request. |
| 82 // Be careful not to use something too small because it might overload the | 85 // Be careful not to use something too small because it might overload the |
| 83 // server. Be careful not to use something too large because it takes longer | 86 // server. Be careful not to use something too large because it takes longer |
| 84 // time to fetch the result without UI response. | 87 // time to fetch the result without UI response. |
| 85 const int kMaxNumFilesResourcePerRequest = 500; | 88 const int kMaxNumFilesResourcePerRequest = 500; |
| 86 const int kMaxNumFilesResourcePerRequestForSearch = 50; | 89 const int kMaxNumFilesResourcePerRequestForSearch = 50; |
| 87 | 90 |
| 88 scoped_ptr<ResourceList> ParseChangeListJsonToResourceList( | 91 scoped_ptr<ResourceList> ParseChangeListJsonToResourceList( |
| 89 scoped_ptr<base::Value> value) { | 92 scoped_ptr<base::Value> value) { |
| 90 scoped_ptr<ChangeList> change_list(ChangeList::CreateFrom(*value)); | 93 scoped_ptr<ChangeList> change_list(ChangeList::CreateFrom(*value)); |
| (...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 callback)); | 599 callback)); |
| 597 } | 600 } |
| 598 | 601 |
| 599 CancelCallback DriveAPIService::AddNewDirectory( | 602 CancelCallback DriveAPIService::AddNewDirectory( |
| 600 const std::string& parent_resource_id, | 603 const std::string& parent_resource_id, |
| 601 const std::string& directory_title, | 604 const std::string& directory_title, |
| 602 const GetResourceEntryCallback& callback) { | 605 const GetResourceEntryCallback& callback) { |
| 603 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 606 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 604 DCHECK(!callback.is_null()); | 607 DCHECK(!callback.is_null()); |
| 605 | 608 |
| 606 return sender_->StartRequestWithRetry( | 609 FilesInsertRequest* request = new FilesInsertRequest( |
| 607 new CreateDirectoryRequest( | 610 sender_.get(), url_generator_, |
| 608 sender_.get(), | 611 base::Bind(&ConvertFileEntryToResourceEntryAndRun, callback)); |
| 609 url_generator_, | 612 request->set_mime_type(kFolderMimeType); |
| 610 parent_resource_id, | 613 request->add_parent(parent_resource_id); |
| 611 directory_title, | 614 request->set_title(directory_title); |
| 612 base::Bind(&ConvertFileEntryToResourceEntryAndRun, callback))); | 615 return sender_->StartRequestWithRetry(request); |
| 613 } | 616 } |
| 614 | 617 |
| 615 CancelCallback DriveAPIService::CopyResource( | 618 CancelCallback DriveAPIService::CopyResource( |
| 616 const std::string& resource_id, | 619 const std::string& resource_id, |
| 617 const std::string& parent_resource_id, | 620 const std::string& parent_resource_id, |
| 618 const std::string& new_title, | 621 const std::string& new_title, |
| 619 const GetResourceEntryCallback& callback) { | 622 const GetResourceEntryCallback& callback) { |
| 620 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 623 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 621 DCHECK(!callback.is_null()); | 624 DCHECK(!callback.is_null()); |
| 622 | 625 |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 866 if (CanSendRequest()) { | 869 if (CanSendRequest()) { |
| 867 FOR_EACH_OBSERVER( | 870 FOR_EACH_OBSERVER( |
| 868 DriveServiceObserver, observers_, OnReadyToSendRequests()); | 871 DriveServiceObserver, observers_, OnReadyToSendRequests()); |
| 869 } else if (!HasRefreshToken()) { | 872 } else if (!HasRefreshToken()) { |
| 870 FOR_EACH_OBSERVER( | 873 FOR_EACH_OBSERVER( |
| 871 DriveServiceObserver, observers_, OnRefreshTokenInvalid()); | 874 DriveServiceObserver, observers_, OnRefreshTokenInvalid()); |
| 872 } | 875 } |
| 873 } | 876 } |
| 874 | 877 |
| 875 } // namespace drive | 878 } // namespace drive |
| OLD | NEW |