waku-org/go-waku

View on GitHub
library/mobile/api_relay.go

Summary

Maintainability
A
0 mins
Test Coverage
package gowaku

import (
    "github.com/waku-org/go-waku/library"
)

// RelayEnoughPeers determines if there are enough peers to publish a message on a topic
func RelayEnoughPeers(instanceID uint, topic string) string {
    instance, err := library.GetInstance(instanceID)
    if err != nil {
        return makeJSONResponse(err)
    }

    response, err := library.RelayEnoughPeers(instance, topic)
    return prepareJSONResponse(response, err)
}

// RelayPublish publishes a message using waku relay and returns the message ID
func RelayPublish(instanceID uint, messageJSON string, topic string, ms int) string {
    instance, err := library.GetInstance(instanceID)
    if err != nil {
        return makeJSONResponse(err)
    }

    hash, err := library.RelayPublish(instance, messageJSON, topic, ms)
    return prepareJSONResponse(hash, err)
}

// RelaySubscribe subscribes to a WakuRelay topic.
func RelaySubscribe(instanceID uint, topic string) string {
    instance, err := library.GetInstance(instanceID)
    if err != nil {
        return makeJSONResponse(err)
    }

    err = library.RelaySubscribe(instance, topic)
    return makeJSONResponse(err)
}

// RelayTopics returns a list of pubsub topics the node is subscribed to in WakuRelay
func RelayTopics(instanceID uint) string {
    instance, err := library.GetInstance(instanceID)
    if err != nil {
        return makeJSONResponse(err)
    }

    topics, err := library.RelayTopics(instance)
    return prepareJSONResponse(topics, err)
}

// RelayUnsubscribe closes the pubsub subscription to a pubsub topic
func RelayUnsubscribe(instanceID uint, topic string) string {
    instance, err := library.GetInstance(instanceID)
    if err != nil {
        return makeJSONResponse(err)
    }

    err = library.RelayUnsubscribe(instance, topic)
    return makeJSONResponse(err)
}