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(