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

Side by Side Diff: chrome/browser/google_apis/gdata_wapi_operations.cc

Issue 12880013: Move parsing code from gdata_wapi_service to gdata_wapi_operations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments. Created 7 years, 9 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/google_apis/gdata_wapi_operations.h" 5 #include "chrome/browser/google_apis/gdata_wapi_operations.h"
6 6
7 #include "base/stringprintf.h" 7 #include "base/stringprintf.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/google_apis/gdata_wapi_parser.h" 10 #include "chrome/browser/google_apis/gdata_wapi_parser.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 // Note: |value| may be NULL, in particular if the callback is for a 66 // Note: |value| may be NULL, in particular if the callback is for a
67 // failure. 67 // failure.
68 if (!entry.get()) 68 if (!entry.get())
69 LOG(WARNING) << "Invalid entry received on upload."; 69 LOG(WARNING) << "Invalid entry received on upload.";
70 } 70 }
71 71
72 return entry.Pass(); 72 return entry.Pass();
73 } 73 }
74 74
75 // Extracts the open link url from the JSON Feed. Used by AuthorizeApp().
76 void ParseOpenLinkAndRun(const std::string& app_id,
77 const AuthorizeAppCallback& callback,
78 GDataErrorCode error,
79 scoped_ptr<base::Value> value) {
80 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
81 DCHECK(!callback.is_null());
82
83 if (!value) {
84 callback.Run(error, GURL());
85 return;
86 }
87
88 // Parsing ResourceEntry is cheap enough to do on UI thread.
89 scoped_ptr<ResourceEntry> resource_entry = ParseResourceEntry(value.Pass());
90 if (!resource_entry) {
91 callback.Run(GDATA_PARSE_ERROR, GURL());
92 return;
93 }
94
95 // Look for the link to open the file with the app with |app_id|.
96 const ScopedVector<Link>& resource_links = resource_entry->links();
97 GURL open_link;
98 for (size_t i = 0; i < resource_links.size(); ++i) {
99 const Link& link = *resource_links[i];
100 if (link.type() == google_apis::Link::LINK_OPEN_WITH &&
101 link.app_id() == app_id) {
102 open_link = link.href();
103 break;
104 }
105 }
106
107 callback.Run(error, open_link);
108 }
109
75 } // namespace 110 } // namespace
76 111
77 112
78 //============================ GetResourceListOperation ======================== 113 //============================ GetResourceListOperation ========================
79 114
80 GetResourceListOperation::GetResourceListOperation( 115 GetResourceListOperation::GetResourceListOperation(
81 OperationRegistry* registry, 116 OperationRegistry* registry,
82 net::URLRequestContextGetter* url_request_context_getter, 117 net::URLRequestContextGetter* url_request_context_getter,
83 const GDataWapiUrlGenerator& url_generator, 118 const GDataWapiUrlGenerator& url_generator,
84 const GURL& override_url, 119 const GURL& override_url,
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 << *upload_content << "]"; 364 << *upload_content << "]";
330 return true; 365 return true;
331 } 366 }
332 367
333 //=========================== AuthorizeAppOperation ========================== 368 //=========================== AuthorizeAppOperation ==========================
334 369
335 AuthorizeAppOperation::AuthorizeAppOperation( 370 AuthorizeAppOperation::AuthorizeAppOperation(
336 OperationRegistry* registry, 371 OperationRegistry* registry,
337 net::URLRequestContextGetter* url_request_context_getter, 372 net::URLRequestContextGetter* url_request_context_getter,
338 const GDataWapiUrlGenerator& url_generator, 373 const GDataWapiUrlGenerator& url_generator,
339 const GetDataCallback& callback, 374 const AuthorizeAppCallback& callback,
340 const std::string& resource_id, 375 const std::string& resource_id,
341 const std::string& app_id) 376 const std::string& app_id)
342 : GetDataOperation(registry, url_request_context_getter, callback), 377 : GetDataOperation(registry, url_request_context_getter,
378 base::Bind(&ParseOpenLinkAndRun, app_id, callback)),
343 url_generator_(url_generator), 379 url_generator_(url_generator),
344 resource_id_(resource_id), 380 resource_id_(resource_id),
345 app_id_(app_id) { 381 app_id_(app_id) {
346 DCHECK(!callback.is_null()); 382 DCHECK(!callback.is_null());
347 } 383 }
348 384
349 AuthorizeAppOperation::~AuthorizeAppOperation() {} 385 AuthorizeAppOperation::~AuthorizeAppOperation() {}
350 386
351 URLFetcher::RequestType AuthorizeAppOperation::GetRequestType() const { 387 URLFetcher::RequestType AuthorizeAppOperation::GetRequestType() const {
352 return URLFetcher::PUT; 388 return URLFetcher::PUT;
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 base::Int64ToString(content_length_)); 675 base::Int64ToString(content_length_));
640 return headers; 676 return headers;
641 } 677 }
642 678
643 void GetUploadStatusOperation::OnRangeOperationComplete( 679 void GetUploadStatusOperation::OnRangeOperationComplete(
644 const UploadRangeResponse& response, scoped_ptr<base::Value> value) { 680 const UploadRangeResponse& response, scoped_ptr<base::Value> value) {
645 callback_.Run(response, ParseResourceEntry(value.Pass())); 681 callback_.Run(response, ParseResourceEntry(value.Pass()));
646 } 682 }
647 683
648 } // namespace google_apis 684 } // namespace google_apis
OLDNEW
« no previous file with comments | « chrome/browser/google_apis/gdata_wapi_operations.h ('k') | chrome/browser/google_apis/gdata_wapi_operations_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698