diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-12-07 18:21:08 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-12-07 18:21:08 +0100 |
commit | c316c5895885fb0ce0a6627f00ded6bcc81cca7c (patch) | |
tree | 481f56ec0a58b4576851c75aeb7f5110de2b8aaa /src | |
parent | d75bd75636fe5d5a96dc9f807480585fe6e2e277 (diff) |
Remove posting of "Hello world" message for new profile
This is actually not desireable and also caused tests to fail because
the hash changed on each test because of the timestamp that is inserted
on every block.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src')
-rw-r--r-- | src/commands/profile.rs | 2 | ||||
-rw-r--r-- | src/profile/mod.rs | 18 | ||||
-rw-r--r-- | src/profile/state.rs | 12 |
3 files changed, 11 insertions, 21 deletions
diff --git a/src/commands/profile.rs b/src/commands/profile.rs index 4da70f1..853984f 100644 --- a/src/commands/profile.rs +++ b/src/commands/profile.rs @@ -44,7 +44,7 @@ async fn profile_serve(matches: &ArgMatches) -> Result<()> { log::info!("Loading '{}' from {}", name, state_dir.display()); let profile = Profile::load(Config::default(), &name).await?; log::info!("Profile loaded"); - log::info!("Profile HEAD = {}", profile.head()); + log::info!("Profile HEAD = {:?}", profile.head()); if let Some(connect_to) = connect_peer { log::info!("Connecting to {:?}", connect_to); diff --git a/src/profile/mod.rs b/src/profile/mod.rs index 4a37bca..56b4ac9 100644 --- a/src/profile/mod.rs +++ b/src/profile/mod.rs @@ -53,24 +53,18 @@ impl Profile { async fn new(ipfs: IpfsClient, config: Config, profile_name: String, keypair: libp2p::identity::Keypair) -> Result<Self> { let client = Client::new(ipfs, config); - let profile_head = Self::post_hello_world(&client, &profile_name).await?; - let state = ProfileState::new(profile_head, profile_name, keypair); + let state = ProfileState::new(profile_name, keypair); Ok(Profile { state, client }) } - pub fn head(&self) -> &cid::Cid { - self.state.profile_head() + pub fn head(&self) -> Option<&cid::Cid> { + self.state.profile_head().as_ref() } pub async fn connect(&self, peer: ipfs::MultiaddrWithPeerId) -> Result<()> { self.client.connect(peer).await } - async fn post_hello_world(client: &Client, name: &str) -> Result<cid::Cid> { - let text = format!("Hello world, I am {}", name); - client.post_text_node(vec![], text).await - } - async fn ipfs_path(state_dir: &StateDir) -> Result<PathBuf> { let path = state_dir.ipfs(); tokio::fs::create_dir_all(&path).await?; @@ -180,11 +174,7 @@ mod tests { let profile = Profile::new_inmemory(Config::default(), "test-create-profile-and-helloworld").await; assert!(profile.is_ok()); let profile = profile.unwrap(); - let head = profile.head(); - let exp_cid = cid::Cid::try_from("bafyreig2koltmta6tvag37dwnzfjf5ft2qxrafymqt56a7r4e5dfkhy3zu").unwrap(); - assert_eq!(*head, exp_cid, "{} != {}", *head, exp_cid); - let exit = profile.exit().await; - assert!(exit.is_ok(), "Not cleanly exited: {:?}", exit); + assert!(profile.head().is_none()); } } diff --git a/src/profile/state.rs b/src/profile/state.rs index a84ff23..4075b52 100644 --- a/src/profile/state.rs +++ b/src/profile/state.rs @@ -32,7 +32,7 @@ impl From<PathBuf> for StateDir { #[derive(getset::Getters)] pub struct ProfileState { #[getset(get = "pub")] - profile_head: cid::Cid, + profile_head: Option<cid::Cid>, #[getset(get = "pub")] profile_name: String, @@ -42,9 +42,9 @@ pub struct ProfileState { } impl ProfileState { - pub(super) fn new(profile_head: cid::Cid, profile_name: String, keypair: libp2p::identity::Keypair) -> Self { + pub(super) fn new(profile_name: String, keypair: libp2p::identity::Keypair) -> Self { Self { - profile_head, + profile_head: None, profile_name, keypair } @@ -59,7 +59,7 @@ impl std::fmt::Debug for ProfileState { #[derive(Debug, serde::Serialize, serde::Deserialize, getset::Getters)] pub(super) struct ProfileStateSaveable { - profile_head: Vec<u8>, + profile_head: Option<Vec<u8>>, profile_name: String, keypair: Vec<u8>, } @@ -67,7 +67,7 @@ pub(super) struct ProfileStateSaveable { impl ProfileStateSaveable { pub(super) fn new(s: &ProfileState) -> Result<Self> { Ok(Self { - profile_head: s.profile_head.to_bytes(), + profile_head: s.profile_head.clone().map(|v| v.to_bytes()), profile_name: s.profile_name.clone(), keypair: match s.keypair { libp2p::identity::Keypair::Ed25519(ref kp) => Vec::from(kp.encode()), @@ -116,7 +116,7 @@ impl TryInto<ProfileState> for ProfileStateSaveable { fn try_into(mut self) -> Result<ProfileState> { Ok(ProfileState { - profile_head: cid::Cid::try_from(self.profile_head)?, + profile_head: self.profile_head.map(|h| cid::Cid::try_from(h)).transpose()?, profile_name: self.profile_name, keypair: { let kp = libp2p::identity::ed25519::Keypair::decode(&mut self.keypair)?; |