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

Unified Diff: google_apis/drive/drive_api_parser.h

Issue 2748053005: Parse TeamDrive resource inside ChangeList. (Closed)
Patch Set: Default the type field to UNKNOWN as it's not causing new test failures. Created 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/drive/service/fake_drive_service.cc ('k') | google_apis/drive/drive_api_parser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: google_apis/drive/drive_api_parser.h
diff --git a/google_apis/drive/drive_api_parser.h b/google_apis/drive/drive_api_parser.h
index da66d2123130a4b61c85cec1dc02698131918bd5..803f13648f0943cc0fea7d52c13a4b82ad7d1c2f 100644
--- a/google_apis/drive/drive_api_parser.h
+++ b/google_apis/drive/drive_api_parser.h
@@ -331,6 +331,7 @@ class AppList {
class TeamDriveCapabilities {
public:
TeamDriveCapabilities();
+ TeamDriveCapabilities(const TeamDriveCapabilities& src);
~TeamDriveCapabilities();
// Registers the mapping between JSON field names and the members in this
@@ -750,6 +751,11 @@ class FileList {
// https://developers.google.com/drive/v2/reference/changes
class ChangeResource {
public:
+ enum ChangeType {
+ UNKNOWN, // Uninitialized state.
+ FILE,
+ TEAM_DRIVE,
+ };
ChangeResource();
~ChangeResource();
@@ -765,20 +771,52 @@ class ChangeResource {
// number.
int64_t change_id() const { return change_id_; }
+ // Returns whether this is a change of a file or a team drive.
+ ChangeType type() const { return type_; }
+
// Returns a string file ID for corresponding file of the change.
- const std::string& file_id() const { return file_id_; }
+ // Valid only when type == FILE.
+ const std::string& file_id() const {
+ DCHECK_EQ(FILE, type_);
+ return file_id_;
+ }
// Returns true if this file is deleted in the change.
bool is_deleted() const { return deleted_; }
// Returns FileResource of the file which the change refers to.
- const FileResource* file() const { return file_.get(); }
- FileResource* mutable_file() { return file_.get(); }
+ // Valid only when type == FILE.
+ const FileResource* file() const {
+ DCHECK_EQ(FILE, type_);
+ return file_.get();
+ }
+ FileResource* mutable_file() {
+ DCHECK_EQ(FILE, type_);
+ return file_.get();
+ }
+
+ // Returns TeamDriveResource which the change refers to.
+ // Valid only when type == TEAM_DRIVE.
+ const TeamDriveResource* team_drive() const {
+ DCHECK_EQ(TEAM_DRIVE, type_);
+ return team_drive_.get();
+ }
+ TeamDriveResource* mutable_team_drive() {
+ DCHECK_EQ(TEAM_DRIVE, type_);
+ return team_drive_.get();
+ }
+
+ // Returns the ID of the Team Drive. Valid only when type == TEAM_DRIVE.
+ const std::string& team_drive_id() const {
+ DCHECK_EQ(TEAM_DRIVE, type_);
+ return team_drive_id_;
+ }
// Returns the time of this modification.
const base::Time& modification_date() const { return modification_date_; }
void set_change_id(int64_t change_id) { change_id_ = change_id; }
+ void set_type(ChangeType type) { type_ = type; }
void set_file_id(const std::string& file_id) {
file_id_ = file_id;
}
@@ -786,6 +824,9 @@ class ChangeResource {
deleted_ = deleted;
}
void set_file(std::unique_ptr<FileResource> file) { file_ = std::move(file); }
+ void set_team_drive(std::unique_ptr<TeamDriveResource> team_drive) {
+ team_drive_ = std::move(team_drive);
+ }
void set_modification_date(const base::Time& modification_date) {
modification_date_ = modification_date;
}
@@ -798,11 +839,19 @@ class ChangeResource {
// Return false if parsing fails.
bool Parse(const base::Value& value);
+ // Extracts the change type from the given string. Returns false and does
+ // not change |result| when |type_name| has an unrecognizable value.
+ static bool GetType(const base::StringPiece& type_name,
+ ChangeResource::ChangeType* result);
+
int64_t change_id_;
+ ChangeType type_;
std::string file_id_;
bool deleted_;
std::unique_ptr<FileResource> file_;
base::Time modification_date_;
+ std::string team_drive_id_;
+ std::unique_ptr<TeamDriveResource> team_drive_;
DISALLOW_COPY_AND_ASSIGN(ChangeResource);
};
« no previous file with comments | « components/drive/service/fake_drive_service.cc ('k') | google_apis/drive/drive_api_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698