blob: e16e0c8b3eab7afafbc6c7f8b4f391f9b29e406f [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/sync/syncable/change_record.h"
#include <string>
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
#include "components/sync/protocol/proto_value_conversions.h"
#include "components/sync/syncable/base_node.h"
#include "components/sync/syncable/read_node.h"
namespace syncer {
ChangeRecord::ChangeRecord() : id(kInvalidId), action(ACTION_ADD) {}
ChangeRecord::ChangeRecord(const ChangeRecord& other) = default;
ChangeRecord::~ChangeRecord() {}
std::unique_ptr<base::DictionaryValue> ChangeRecord::ToValue() const {
std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
std::string action_str;
switch (action) {
case ACTION_ADD:
action_str = "Add";
break;
case ACTION_DELETE:
action_str = "Delete";
break;
case ACTION_UPDATE:
action_str = "Update";
break;
default:
NOTREACHED();
action_str = "Unknown";
break;
}
value->SetString("action", action_str);
value->SetString("id", base::Int64ToString(id));
if (action == ACTION_DELETE) {
if (extra.has_value()) {
value->Set("extra", extra->ToValue());
}
value->Set("specifics", EntitySpecificsToValue(specifics));
}
return value;
}
ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData() {}
ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData(
const sync_pb::PasswordSpecificsData& data)
: unencrypted_(data) {}
ExtraPasswordChangeRecordData::~ExtraPasswordChangeRecordData() {}
std::unique_ptr<base::DictionaryValue> ExtraPasswordChangeRecordData::ToValue()
const {
return PasswordSpecificsDataToValue(unencrypted_);
}
const sync_pb::PasswordSpecificsData&
ExtraPasswordChangeRecordData::unencrypted() const {
return unencrypted_;
}
} // namespace syncer