buffet: Serialize longs as strings.
As per Apiary recommendations.
BUG=chromium:434767
TEST=cros_workon_make --test buffet
Change-Id: I1df2a767f1a783ebd64c03f74d2992767c54f708
Reviewed-on: https://chromium-review.googlesource.com/231332
Tested-by: Anton Muhin <antonm@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc
index 25c6ee1..cd3cd2b 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -797,9 +797,8 @@
std::unique_ptr<base::ListValue> patches{new base::ListValue};
for (const auto& state_change : state_changes) {
std::unique_ptr<base::DictionaryValue> patch{new base::DictionaryValue};
- // TODO(antonm): Weird part: API requires long here while there is no
- // such thing like long in JSON. Also, ToJavaTime produces int64.
- patch->SetInteger("timeMs", state_change.timestamp.ToJavaTime());
+ patch->SetString("timeMs",
+ std::to_string(state_change.timestamp.ToJavaTime()));
std::unique_ptr<base::DictionaryValue> changes{new base::DictionaryValue};
for (const auto& pair : state_change.changed_properties) {
@@ -815,7 +814,8 @@
}
base::DictionaryValue body;
- body.SetInteger("requestTimeMs", base::Time::Now().ToJavaTime());
+ body.SetString("requestTimeMs",
+ std::to_string(base::Time::Now().ToJavaTime()));
body.Set("patches", patches.release());
DoCloudRequest(