summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-12-10 18:04:55 +0100
committerMatthias Beyer <mail@beyermatthias.de>2021-12-10 18:04:55 +0100
commit80caa9e67cdb64b79328acc74d0131789fc47c6d (patch)
tree21524c1ee6fceb7758297c977efd01f115594903
parent3a4fabc292a9c6c1405e78312b24ea67a945ecc7 (diff)
Refactor: Move ReplyMe request handling into helper fn
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--lib/src/reactor/gossip/mod.rs66
1 files changed, 34 insertions, 32 deletions
diff --git a/lib/src/reactor/gossip/mod.rs b/lib/src/reactor/gossip/mod.rs
index 52bff51..9ba1d05 100644
--- a/lib/src/reactor/gossip/mod.rs
+++ b/lib/src/reactor/gossip/mod.rs
@@ -65,39 +65,41 @@ impl GossipReactor {
Ok(())
},
- Some((GossipRequest::PublishMe, reply_channel)) => {
- let profile = self.inner.profile();
- let profile = profile.read().await;
-
- let head = profile.head();
- if head.is_none() {
- Self::send_gossip_reply(reply_channel, GossipReply::NoHead)?;
- return Ok(())
- }
- let head = head.unwrap().to_bytes();
+ Some((GossipRequest::PublishMe, reply_channel)) => self.publish_me(reply_channel).await
+ }
+ }
- let own_id = match profile.client().own_id().await {
- Ok(id) => id,
- Err(e) => {
- Self::send_gossip_reply(reply_channel, GossipReply::PublishMeResult(Err(e)))?;
- return Ok(()) // TODO: abort operation here for now, maybe not the best idea
- }
- };
-
- let publish_res = profile
- .client()
- .ipfs
- .pubsub_publish(self.gossip_topic_name.clone(), GossipMessage::CurrentProfileState {
- peer_id: own_id.to_bytes(),
- cid: head
- }.into_bytes()?)
- .await;
-
- match publish_res {
- Ok(()) => Self::send_gossip_reply(reply_channel, GossipReply::PublishMeResult(Ok(()))),
- Err(e) => Self::send_gossip_reply(reply_channel, GossipReply::PublishMeResult(Err(e))),
- }
- },
+ async fn publish_me(&self, reply_channel: ReplyChannel<GossipReply>) -> Result<()> {
+ let profile = self.inner.profile();
+ let profile = profile.read().await;
+
+ let head = profile.head();
+ if head.is_none() {
+ Self::send_gossip_reply(reply_channel, GossipReply::NoHead)?;
+ return Ok(())
+ }
+ let head = head.unwrap().to_bytes();
+
+ let own_id = match profile.client().own_id().await {
+ Ok(id) => id,
+ Err(e) => {
+ Self::send_gossip_reply(reply_channel, GossipReply::PublishMeResult(Err(e)))?;
+ return Ok(()) // TODO: abort operation here for now, maybe not the best idea
+ }
+ };
+
+ let publish_res = profile
+ .client()
+ .ipfs
+ .pubsub_publish(self.gossip_topic_name.clone(), GossipMessage::CurrentProfileState {
+ peer_id: own_id.to_bytes(),
+ cid: head
+ }.into_bytes()?)
+ .await;
+
+ match publish_res {
+ Ok(()) => Self::send_gossip_reply(reply_channel, GossipReply::PublishMeResult(Ok(()))),
+ Err(e) => Self::send_gossip_reply(reply_channel, GossipReply::PublishMeResult(Err(e))),
}
}