Chromium Code Reviews| Index: chrome/browser/drive/drive_api_util.cc |
| diff --git a/chrome/browser/drive/drive_api_util.cc b/chrome/browser/drive/drive_api_util.cc |
| index 48b9b227cb6d2c0b1b48f6e5d863daddfbfef748..48ba22e3a872d98cbdd282de6d89dfc70f23d873 100644 |
| --- a/chrome/browser/drive/drive_api_util.cc |
| +++ b/chrome/browser/drive/drive_api_util.cc |
| @@ -14,6 +14,7 @@ |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/values.h" |
| #include "chrome/browser/drive/drive_switches.h" |
| +#include "chrome/browser/google_apis/drive_api_parser.h" |
| #include "chrome/browser/google_apis/gdata_wapi_parser.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "net/base/escape.h" |
| @@ -157,6 +158,71 @@ void ParseShareUrlAndRun(const google_apis::GetShareUrlCallback& callback, |
| callback.Run(error, share_link ? share_link->href() : GURL()); |
| } |
| +scoped_ptr<google_apis::FileResource> ConvertResourceEntryToFileResource( |
| + const google_apis::ResourceEntry& entry) { |
| + scoped_ptr<google_apis::FileResource> file(new google_apis::FileResource); |
| + |
| + // FileResource |
|
hidehiko
2013/09/09 06:30:08
nit: you don't need this comment.
tzik
2013/09/09 06:50:59
Done.
|
| + file->set_file_id(entry.resource_id()); |
| + file->set_title(entry.title()); |
| + file->set_created_date(entry.published_time()); |
| + |
| + if (std::find(entry.labels().begin(), entry.labels().end(), |
| + "shared-with-me") == entry.labels().end()) { |
| + // Set current time to mark the file is shared_with_me, since ResourceEntry |
| + // doesn't have |shared_with_me_date| equivalent. |
| + file->set_shared_with_me_date(base::Time::Now()); |
| + } |
| + |
| + file->set_download_url(entry.download_url()); |
| + file->set_mime_type(entry.content_mime_type()); |
| + |
| + file->set_md5_checksum(entry.file_md5()); |
| + file->set_file_size(entry.file_size()); |
| + |
| + file->mutable_labels()->set_trashed(entry.deleted()); |
| + file->set_etag(entry.etag()); |
| + |
| + ScopedVector<google_apis::ParentReference> parents; |
| + for (size_t i = 0; i < entry.links().size(); ++i) { |
| + using google_apis::Link; |
| + const Link& link = *entry.links()[i]; |
| + switch (link.type()) { |
| + case Link::LINK_PARENT: { |
| + scoped_ptr<google_apis::ParentReference> parent( |
| + new google_apis::ParentReference); |
| + parent->set_parent_link(link.href()); |
| + |
| + std::string file_id = |
| + drive::util::ExtractResourceIdFromUrl(link.href()); |
| + parent->set_is_root(file_id == kWapiRootDirectoryResourceId); |
| + parents.push_back(parent.release()); |
| + break; |
| + } |
| + case Link::LINK_EDIT: |
| + file->set_self_link(link.href()); |
| + break; |
| + case Link::LINK_THUMBNAIL: |
| + file->set_thumbnail_link(link.href()); |
| + break; |
| + case Link::LINK_ALTERNATE: |
| + file->set_alternate_link(link.href()); |
| + break; |
| + case Link::LINK_EMBED: |
| + file->set_embed_link(link.href()); |
| + break; |
| + default: |
| + break; |
| + } |
| + } |
| + file->set_parents(parents.Pass()); |
| + |
| + file->set_modified_date(entry.updated_time()); |
| + file->set_last_viewed_by_me_date(entry.last_viewed_time()); |
| + |
| + return file.Pass(); |
| +} |
| + |
| const char kWapiRootDirectoryResourceId[] = "folder:root"; |
| } // namespace util |