mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-06-04 13:09:32 +00:00
27 lines
791 B
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.}
|