defmodule MyspaceIPFS.Api.Network.PubSub do
@moduledoc """
MyspaceIPFS.Api.PubSub is where the pubsub commands of the IPFS API reside.
"""
import MyspaceIPFS.Utils
@spec ls :: {:client_error | :forbidden | :missing | :not_allowed | :ok | :server_error, any}
def ls, do: request_get("/pubsub/ls")
@spec peers :: {:client_error | :forbidden | :missing | :not_allowed | :ok | :server_error, any}
def peers, do: request_get("/pubsub/pub")
@spec pub(binary, binary) ::
{:client_error | :forbidden | :missing | :not_allowed | :ok | :server_error, any}
def pub(topic, data),
do: request_get("/pubsub/pub?arg=" <> topic <> "&arg=" <> data)
@spec sub(binary) ::
{:client_error | :forbidden | :missing | :not_allowed | :ok | :server_error, any}
def sub(topic), do: request_get("/pubsub/sub?arg=", topic)
end