logos-delivery/messaging/api/api_unsubscribe.nim

27 lines
791 B
Nim

{.push raises: [].}
import results
import std/options
import waku/waku_core/[topics/content_topic, topics/pubsub_topic]
import waku/api/requests/subscription as kernel_subscription_api
import messaging/messaging_client_type
proc unsubscribe*(
client: MessagingClient, contentTopic: ContentTopic
): Result[void, string] =
if client.isNil():
return err("MessagingClient.unsubscribe: client is nil")
if client.relayMounted:
kernel_subscription_api.RequestRelayUnsubscribeContentTopic.request(
client.brokerCtx, contentTopic, none[PubsubTopic]()
).isOkOr:
return err(error)
else:
kernel_subscription_api.RequestEdgeUnsubscribe.request(
client.brokerCtx, contentTopic, none[PubsubTopic]()
).isOkOr:
return err(error)
return ok()
{.pop.}