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

Unified Diff: chrome/browser/chromeos/gdata/drive_api_parser.cc

Issue 10836205: Parse labels under File resource. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase. Created 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/gdata/drive_api_parser.cc
diff --git a/chrome/browser/chromeos/gdata/drive_api_parser.cc b/chrome/browser/chromeos/gdata/drive_api_parser.cc
index 52363b5c5854a0cbd0e68f9fa7c72f619ffb2164..21ad7e0affd09a5438d23602b86bbeb5d75ea4bf 100644
--- a/chrome/browser/chromeos/gdata/drive_api_parser.cc
+++ b/chrome/browser/chromeos/gdata/drive_api_parser.cc
@@ -98,6 +98,13 @@ const char kEmbedLink[] = "embedLink";
const char kParents[] = "parents";
const char kThumbnailLink[] = "thumbnailLink";
const char kWebContentLink[] = "webContentLink";
+const char kLabels[] = "labels";
+// These 5 flags are defined under |labels|.
+const char kLabelStarred[] = "starred";
+const char kLabelHidden[] = "hidden";
+const char kLabelTrashed[] = "trashed";
+const char kLabelRestricted[] = "restricted";
+const char kLabelViewed[] = "viewed";
const char kDriveFolderMimeType[] = "application/vnd.google-apps.folder";
@@ -395,6 +402,7 @@ void FileResource::RegisterJSONConverter(
GetGURLFromString);
converter->RegisterStringField(kTitle, &FileResource::title_);
converter->RegisterStringField(kMimeType, &FileResource::mime_type_);
+ converter->RegisterNestedField(kLabels, &FileResource::labels_);
converter->RegisterCustomField<base::Time>(
kCreatedDate,
&FileResource::created_date_,
@@ -588,4 +596,46 @@ bool ChangeList::Parse(const base::Value& value) {
return true;
}
+
+////////////////////////////////////////////////////////////////////////////////
+// FileLabels implementation
+
+FileLabels::FileLabels()
+ : starred_(false),
+ hidden_(false),
+ trashed_(false),
+ restricted_(false),
+ viewed_(false) {}
+
+FileLabels::~FileLabels() {}
+
+// static
+void FileLabels::RegisterJSONConverter(
+ base::JSONValueConverter<FileLabels>* converter) {
+ converter->RegisterBoolField(kLabelStarred, &FileLabels::starred_);
+ converter->RegisterBoolField(kLabelHidden, &FileLabels::hidden_);
+ converter->RegisterBoolField(kLabelTrashed, &FileLabels::trashed_);
+ converter->RegisterBoolField(kLabelRestricted, &FileLabels::restricted_);
+ converter->RegisterBoolField(kLabelViewed, &FileLabels::viewed_);
+}
+
+// static
+scoped_ptr<FileLabels> FileLabels::CreateFrom(const base::Value& value) {
+ scoped_ptr<FileLabels> resource(new FileLabels());
+ if (!resource->Parse(value)) {
+ LOG(ERROR) << "Unable to create: Invalid FileLabels JSON!";
+ return scoped_ptr<FileLabels>(NULL);
+ }
+ return resource.Pass();
+}
+
+bool FileLabels::Parse(const base::Value& value) {
+ base::JSONValueConverter<FileLabels> converter;
+ if (!converter.Convert(value, this)) {
+ LOG(ERROR) << "Unable to parse: Invalid FileLabels";
+ return false;
+ }
+ return true;
+}
+
} // namespace gdata
« no previous file with comments | « chrome/browser/chromeos/gdata/drive_api_parser.h ('k') | chrome/browser/chromeos/gdata/drive_api_parser_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698