Commit from m3o/m3o action

This commit is contained in:
m3o-actions
2021-11-02 16:43:32 +00:00
parent 114660a002
commit 8623e7fec8
4 changed files with 73 additions and 34 deletions

View File

@@ -16,7 +16,13 @@ type EventService struct {
client *client.Client
}
// Publish a message to the event stream.
// Consume events from a given topic.
func (t *EventService) Consume(request *ConsumeRequest) (*ConsumeResponse, error) {
rsp := &ConsumeResponse{}
return rsp, t.client.Call("event", "Consume", request, rsp)
}
// Publish a event to the event stream.
func (t *EventService) Publish(request *PublishRequest) (*PublishResponse, error) {
rsp := &PublishResponse{}
return rsp, t.client.Call("event", "Publish", request, rsp)
@@ -28,10 +34,24 @@ func (t *EventService) Read(request *ReadRequest) (*ReadResponse, error) {
return rsp, t.client.Call("event", "Read", request, rsp)
}
// Subscribe to messages for a given topic.
func (t *EventService) Subscribe(request *SubscribeRequest) (*SubscribeResponse, error) {
rsp := &SubscribeResponse{}
return rsp, t.client.Call("event", "Subscribe", request, rsp)
type ConsumeRequest struct {
// Optional group for the subscription
Group string `json:"group"`
// Optional offset to read from e.g "2006-01-02T15:04:05.999Z07:00"
Offset string `json:"offset"`
// The topic to subscribe to
Topic string `json:"topic"`
}
type ConsumeResponse struct {
// Unique message id
Id string `json:"id"`
// The next json message on the topic
Message map[string]interface{} `json:"message"`
// Timestamp of publishing
Timestamp string `json:"timestamp"`
// The topic subscribed to
Topic string `json:"topic"`
}
type Ev struct {
@@ -66,23 +86,3 @@ type ReadResponse struct {
// the events
Events []Ev `json:"events"`
}
type SubscribeRequest struct {
// Optional group for the subscription
Group string `json:"group"`
// Optional offset to read from e.g "2006-01-02T15:04:05.999Z07:00"
Offset string `json:"offset"`
// The topic to subscribe to
Topic string `json:"topic"`
}
type SubscribeResponse struct {
// Unique message id
Id string `json:"id"`
// The next json message on the topic
Message map[string]interface{} `json:"message"`
// Timestamp of publishing
Timestamp string `json:"timestamp"`
// The topic subscribed to
Topic string `json:"topic"`
}

View File

@@ -6,7 +6,7 @@ Endpoints:
## Publish
Publish a message to the event stream.
Publish a event to the event stream.
[https://m3o.com/event/api#Publish](https://m3o.com/event/api#Publish)
@@ -21,8 +21,8 @@ import(
"go.m3o.com/event"
)
// Publish a message to the event stream.
func PublishAmessage() {
// Publish a event to the event stream.
func PublishAnEvent() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
rsp, err := eventService.Publish(&event.PublishRequest{
Message: map[string]interface{}{
@@ -36,12 +36,12 @@ Topic: "user",
fmt.Println(rsp, err)
}
```
## Subscribe
## Consume
Subscribe to messages for a given topic.
Consume events from a given topic.
[https://m3o.com/event/api#Subscribe](https://m3o.com/event/api#Subscribe)
[https://m3o.com/event/api#Consume](https://m3o.com/event/api#Consume)
```go
package example
@@ -53,10 +53,10 @@ import(
"go.m3o.com/event"
)
// Subscribe to messages for a given topic.
func SubscribeToAtopic() {
// Consume events from a given topic.
func ConsumeFromAtopic() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
rsp, err := eventService.Subscribe(&event.SubscribeRequest{
rsp, err := eventService.Consume(&event.ConsumeRequest{
Topic: "user",
})

View File

@@ -0,0 +1,17 @@
package example
import (
"fmt"
"os"
"go.m3o.com/event"
)
// Consume events from a given topic.
func ConsumeFromAtopic() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
rsp, err := eventService.Consume(&event.ConsumeRequest{
Topic: "user",
})
fmt.Println(rsp, err)
}

View File

@@ -0,0 +1,22 @@
package example
import (
"fmt"
"os"
"go.m3o.com/event"
)
// Publish a event to the event stream.
func PublishAnEvent() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
rsp, err := eventService.Publish(&event.PublishRequest{
Message: map[string]interface{}{
"id": "1",
"type": "signup",
"user": "john",
},
Topic: "user",
})
fmt.Println(rsp, err)
}