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

Side by Side Diff: google_apis/drive/drive_api_requests.cc

Issue 139153006: drive: Add metadata parameters to InitiateUpload* methods (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix nits Created 6 years, 11 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 "google_apis/drive/drive_api_requests.h" 5 #include "google_apis/drive/drive_api_requests.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 response.start_position_received, 106 response.start_position_received,
107 response.end_position_received), 107 response.end_position_received),
108 scoped_ptr<FileResource>()); 108 scoped_ptr<FileResource>());
109 return; 109 return;
110 } 110 }
111 } 111 }
112 112
113 callback.Run(response, file_resource.Pass()); 113 callback.Run(response, file_resource.Pass());
114 } 114 }
115 115
116 // Creates a Parents value which can be used as a part of request body.
117 scoped_ptr<base::DictionaryValue> CreateParentValue(
118 const std::string& file_id) {
119 scoped_ptr<base::DictionaryValue> parent(new base::DictionaryValue);
120 parent->SetString("kind", kParentLinkKind);
121 parent->SetString("id", file_id);
122 return parent.Pass();
123 }
124
116 } // namespace 125 } // namespace
117 126
118 namespace drive { 127 namespace drive {
119 128
120 //============================ DriveApiDataRequest =========================== 129 //============================ DriveApiDataRequest ===========================
121 130
122 DriveApiDataRequest::DriveApiDataRequest(RequestSender* sender, 131 DriveApiDataRequest::DriveApiDataRequest(RequestSender* sender,
123 const GetDataCallback& callback) 132 const GetDataCallback& callback)
124 : GetDataRequest(sender, callback) { 133 : GetDataRequest(sender, callback) {
125 } 134 }
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 content_type, 604 content_type,
596 content_length), 605 content_length),
597 url_generator_(url_generator), 606 url_generator_(url_generator),
598 parent_resource_id_(parent_resource_id), 607 parent_resource_id_(parent_resource_id),
599 title_(title) { 608 title_(title) {
600 } 609 }
601 610
602 InitiateUploadNewFileRequest::~InitiateUploadNewFileRequest() {} 611 InitiateUploadNewFileRequest::~InitiateUploadNewFileRequest() {}
603 612
604 GURL InitiateUploadNewFileRequest::GetURL() const { 613 GURL InitiateUploadNewFileRequest::GetURL() const {
605 return url_generator_.GetInitiateUploadNewFileUrl(); 614 return url_generator_.GetInitiateUploadNewFileUrl(!modified_date_.is_null());
606 } 615 }
607 616
608 net::URLFetcher::RequestType 617 net::URLFetcher::RequestType
609 InitiateUploadNewFileRequest::GetRequestType() const { 618 InitiateUploadNewFileRequest::GetRequestType() const {
610 return net::URLFetcher::POST; 619 return net::URLFetcher::POST;
611 } 620 }
612 621
613 bool InitiateUploadNewFileRequest::GetContentData( 622 bool InitiateUploadNewFileRequest::GetContentData(
614 std::string* upload_content_type, 623 std::string* upload_content_type,
615 std::string* upload_content) { 624 std::string* upload_content) {
616 *upload_content_type = kContentTypeApplicationJson; 625 *upload_content_type = kContentTypeApplicationJson;
617 626
618 base::DictionaryValue root; 627 base::DictionaryValue root;
619 root.SetString("title", title_); 628 root.SetString("title", title_);
620 629
621 // Fill parent link. 630 // Fill parent link.
622 { 631 scoped_ptr<base::ListValue> parents(new base::ListValue);
623 scoped_ptr<base::DictionaryValue> parent(new base::DictionaryValue); 632 parents->Append(CreateParentValue(parent_resource_id_).release());
624 parent->SetString("kind", kParentLinkKind); 633 root.Set("parents", parents.release());
625 parent->SetString("id", parent_resource_id_);
626 634
627 scoped_ptr<base::ListValue> parents(new base::ListValue); 635 if (!modified_date_.is_null())
628 parents->Append(parent.release()); 636 root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_));
629 637
630 root.Set("parents", parents.release()); 638 if (!last_viewed_by_me_date_.is_null()) {
639 root.SetString("lastViewedByMeDate",
640 util::FormatTimeAsString(last_viewed_by_me_date_));
631 } 641 }
632 642
633 base::JSONWriter::Write(&root, upload_content); 643 base::JSONWriter::Write(&root, upload_content);
634 644
635 DVLOG(1) << "InitiateUploadNewFile data: " << *upload_content_type << ", [" 645 DVLOG(1) << "InitiateUploadNewFile data: " << *upload_content_type << ", ["
636 << *upload_content << "]"; 646 << *upload_content << "]";
637 return true; 647 return true;
638 } 648 }
639 649
640 //===================== InitiateUploadExistingFileRequest ==================== 650 //===================== InitiateUploadExistingFileRequest ====================
(...skipping 11 matching lines...) Expand all
652 content_type, 662 content_type,
653 content_length), 663 content_length),
654 url_generator_(url_generator), 664 url_generator_(url_generator),
655 resource_id_(resource_id), 665 resource_id_(resource_id),
656 etag_(etag) { 666 etag_(etag) {
657 } 667 }
658 668
659 InitiateUploadExistingFileRequest::~InitiateUploadExistingFileRequest() {} 669 InitiateUploadExistingFileRequest::~InitiateUploadExistingFileRequest() {}
660 670
661 GURL InitiateUploadExistingFileRequest::GetURL() const { 671 GURL InitiateUploadExistingFileRequest::GetURL() const {
662 return url_generator_.GetInitiateUploadExistingFileUrl(resource_id_); 672 return url_generator_.GetInitiateUploadExistingFileUrl(
673 resource_id_, !modified_date_.is_null());
663 } 674 }
664 675
665 net::URLFetcher::RequestType 676 net::URLFetcher::RequestType
666 InitiateUploadExistingFileRequest::GetRequestType() const { 677 InitiateUploadExistingFileRequest::GetRequestType() const {
667 return net::URLFetcher::PUT; 678 return net::URLFetcher::PUT;
668 } 679 }
669 680
670 std::vector<std::string> 681 std::vector<std::string>
671 InitiateUploadExistingFileRequest::GetExtraRequestHeaders() const { 682 InitiateUploadExistingFileRequest::GetExtraRequestHeaders() const {
672 std::vector<std::string> headers( 683 std::vector<std::string> headers(
673 InitiateUploadRequestBase::GetExtraRequestHeaders()); 684 InitiateUploadRequestBase::GetExtraRequestHeaders());
674 headers.push_back(util::GenerateIfMatchHeader(etag_)); 685 headers.push_back(util::GenerateIfMatchHeader(etag_));
675 return headers; 686 return headers;
676 } 687 }
677 688
689 bool InitiateUploadExistingFileRequest::GetContentData(
690 std::string* upload_content_type,
691 std::string* upload_content) {
692 base::DictionaryValue root;
693 if (!parent_resource_id_.empty()) {
694 scoped_ptr<base::ListValue> parents(new base::ListValue);
695 parents->Append(CreateParentValue(parent_resource_id_).release());
696 root.Set("parents", parents.release());
697 }
698
699 if (!title_.empty())
700 root.SetString("title", title_);
701
702 if (!modified_date_.is_null())
703 root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_));
704
705 if (!last_viewed_by_me_date_.is_null()) {
706 root.SetString("lastViewedByMeDate",
707 util::FormatTimeAsString(last_viewed_by_me_date_));
708 }
709
710 if (root.empty())
711 return false;
712
713 *upload_content_type = kContentTypeApplicationJson;
714 base::JSONWriter::Write(&root, upload_content);
715 DVLOG(1) << "InitiateUploadExistingFile data: " << *upload_content_type
716 << ", [" << *upload_content << "]";
717 return true;
718 }
719
678 //============================ ResumeUploadRequest =========================== 720 //============================ ResumeUploadRequest ===========================
679 721
680 ResumeUploadRequest::ResumeUploadRequest( 722 ResumeUploadRequest::ResumeUploadRequest(
681 RequestSender* sender, 723 RequestSender* sender,
682 const GURL& upload_location, 724 const GURL& upload_location,
683 int64 start_position, 725 int64 start_position,
684 int64 end_position, 726 int64 end_position,
685 int64 content_length, 727 int64 content_length,
686 const std::string& content_type, 728 const std::string& content_type,
687 const base::FilePath& local_file_path, 729 const base::FilePath& local_file_path,
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 progress_callback, 796 progress_callback,
755 url_generator.GenerateDownloadFileUrl(resource_id), 797 url_generator.GenerateDownloadFileUrl(resource_id),
756 output_file_path) { 798 output_file_path) {
757 } 799 }
758 800
759 DownloadFileRequest::~DownloadFileRequest() { 801 DownloadFileRequest::~DownloadFileRequest() {
760 } 802 }
761 803
762 } // namespace drive 804 } // namespace drive
763 } // namespace google_apis 805 } // namespace google_apis
OLDNEW
« no previous file with comments | « google_apis/drive/drive_api_requests.h ('k') | google_apis/drive/drive_api_requests_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698