kane v1.0.0 Kane.Topic
A Kane.Topic
is used to interact with and create a topic within the Pub/Sub API.
Setting up and pulling from a subscription is straightforward:
# for the most part, names can be include the project prefix or not
{:ok, subscription} = Kane.Subscription{topic: %Kane.Topic{name: "my-topic"}}
{:ok, messages} = Kane.Subscription.pull(subscription)
Enum.each messages, fn(mess)->
process_message(mess)
end
# acknowledge message receipt in bulk
Kane.Subscription.ack(subscription, messages)
Link to this section Summary
Functions
Retrieve all the topics from the API. NOTE: Subscription.all/0
doesn't currently support pagination,
so if you have more than 100 topics, you won't be able to retrieve all of them
Create a new topic in the API
Find a topic by name. The name can be either a short name (my-topic
)
or the fully-qualified name (projects/my-project/topics/my-topic
)
Adds the project and topic prefix (if necessary) to create a fully-qualified topic name
Strips the project and topic prefix from a fully qualified topic name
Link to this section Types
t()
t() :: %Kane.Topic{name: String.t()}
t() :: %Kane.Topic{name: String.t()}
Link to this section Functions
all(kane)
Retrieve all the topics from the API. NOTE: Subscription.all/0
doesn't currently support pagination,
so if you have more than 100 topics, you won't be able to retrieve all of them.
create(kane, topic_name)
Create a new topic in the API.
delete(kane, topic_name)
find(kane, topic_name)
Find a topic by name. The name can be either a short name (my-topic
)
or the fully-qualified name (projects/my-project/topics/my-topic
)
full_name(topic_name, project_id)
Adds the project and topic prefix (if necessary) to create a fully-qualified topic name
iex> Kane.Topic.full_name(%Kane.Topic{name: "my-topic"}, "my-project")
"projects/my-project/topics/my-topic"
strip!(project_id, topic_name)
Strips the project and topic prefix from a fully qualified topic name
iex> Kane.Topic.strip!("my-project", "projects/my-project/topics/my-topic")
"my-topic"