Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
Use numbers for `LocalTime` timestamps
Alexis Sellier committed 2 years ago
commit 26e3c0fbff1f016a41cd335289a6067fb02f5f94
parent 693f0a2c440d966b0d57841d1ae0a9247c443001
3 files changed +13 -17
modified radicle-httpd/src/api/json.rs
@@ -139,7 +139,7 @@ pub(crate) fn patch(
                "discussions": rev.discussion().comments()
                  .map(|(id, comment)| Comment::new(id, comment,  aliases))
                  .collect::<Vec<_>>(),
-
                "timestamp": rev.timestamp().as_secs().to_string(),
+
                "timestamp": rev.timestamp().as_secs(),
                "reviews": rev.reviews().map(|(nid, _review)| review(nid, aliases.alias(nid), _review)).collect::<Vec<_>>(),
            })
        }).collect::<Vec<_>>(),
@@ -166,7 +166,7 @@ fn merge(merge: &Merge, nid: &NodeId, alias: Option<Alias>) -> Value {
                "alias": alias,
            },
            "commit": merge.commit,
-
            "timestamp": merge.timestamp.as_secs().to_string(),
+
            "timestamp": merge.timestamp.as_secs(),
            "revision": merge.revision,
        }),
        None => json!({
@@ -174,7 +174,7 @@ fn merge(merge: &Merge, nid: &NodeId, alias: Option<Alias>) -> Value {
                "id": nid,
            },
            "commit": merge.commit,
-
            "timestamp": merge.timestamp.as_secs().to_string(),
+
            "timestamp": merge.timestamp.as_secs(),
            "revision": merge.revision,
        }),
    }
@@ -191,7 +191,7 @@ fn review(nid: &NodeId, alias: Option<Alias>, review: &Review) -> Value {
            "verdict": review.verdict(),
            "summary": review.summary(),
            "comments": review.comments().collect::<Vec<_>>(),
-
            "timestamp": review.timestamp().as_secs().to_string(),
+
            "timestamp": review.timestamp().as_secs(),
        }),
        None => json!({
            "author": {
@@ -200,7 +200,7 @@ fn review(nid: &NodeId, alias: Option<Alias>, review: &Review) -> Value {
            "verdict": review.verdict(),
            "summary": review.summary(),
            "comments": review.comments().collect::<Vec<_>>(),
-
            "timestamp": review.timestamp().as_secs().to_string(),
+
            "timestamp": review.timestamp().as_secs(),
        }),
    }
}
modified radicle-httpd/src/test.rs
@@ -37,7 +37,7 @@ pub const ISSUE_ID: &str = "5ad77fa3f476beed9a26f49b2b3b844e61bef792";
pub const ISSUE_DISCUSSION_ID: &str = "f1dff128a22e8183a23516dd9812e72e80914c92";
pub const ISSUE_COMMENT_ID: &str = "845218041bf9eb8155bfa4aaa8f0c91ce18e5c13";
pub const SESSION_ID: &str = "u9MGAkkfkMOv0uDDB2WeUHBT7HbsO2Dy";
-
pub const TIMESTAMP: &str = "1671125284";
+
pub const TIMESTAMP: u64 = 1671125284;
pub const CONTRIBUTOR_RID: &str = "rad:z4XaCmN3jLSeiMvW15YTDpNbDHFhG";
pub const CONTRIBUTOR_DID: &str = "did:key:z6Mkk7oqY4pPxhMmGEotDYsFo97vhCj85BLY1H256HrJmjN8";
pub const CONTRIBUTOR_NID: &str = "z6Mkk7oqY4pPxhMmGEotDYsFo97vhCj85BLY1H256HrJmjN8";
@@ -97,7 +97,7 @@ fn seed_with_signer<G: Signer>(dir: &Path, profile: radicle::Profile, signer: &G

    let workdir = dir.join("hello-world");

-
    env::set_var("RAD_COMMIT_TIME", TIMESTAMP);
+
    env::set_var("RAD_COMMIT_TIME", TIMESTAMP.to_string());

    fs::create_dir_all(&workdir).unwrap();

modified radicle/src/serde_ext.rs
@@ -29,22 +29,20 @@ pub mod string {
pub mod localtime {
    pub mod time {
        use localtime::LocalTime;
-
        use serde::{de, Deserialize, Deserializer, Serializer};
+
        use serde::{Deserialize, Deserializer, Serializer};

        pub fn serialize<S>(value: &LocalTime, serializer: S) -> Result<S::Ok, S::Error>
        where
            S: Serializer,
        {
-
            serializer.collect_str(&value.as_secs())
+
            serializer.serialize_u64(value.as_secs())
        }

        pub fn deserialize<'de, D>(deserializer: D) -> Result<LocalTime, D::Error>
        where
            D: Deserializer<'de>,
        {
-
            let seconds: u64 = String::deserialize(deserializer)?
-
                .parse()
-
                .map_err(de::Error::custom)?;
+
            let seconds = u64::deserialize(deserializer)?;

            Ok(LocalTime::from_secs(seconds))
        }
@@ -52,22 +50,20 @@ pub mod localtime {

    pub mod duration {
        use localtime::LocalDuration;
-
        use serde::{de, Deserialize, Deserializer, Serializer};
+
        use serde::{Deserialize, Deserializer, Serializer};

        pub fn serialize<S>(value: &LocalDuration, serializer: S) -> Result<S::Ok, S::Error>
        where
            S: Serializer,
        {
-
            serializer.collect_str(&value.as_secs())
+
            serializer.serialize_u64(value.as_secs())
        }

        pub fn deserialize<'de, D>(deserializer: D) -> Result<LocalDuration, D::Error>
        where
            D: Deserializer<'de>,
        {
-
            let seconds: u64 = String::deserialize(deserializer)?
-
                .parse()
-
                .map_err(de::Error::custom)?;
+
            let seconds = u64::deserialize(deserializer)?;

            Ok(LocalDuration::from_secs(seconds))
        }