Files
m3o-go/examples/event/README.md
2022-03-01 16:40:47 +00:00

1.6 KiB
Executable File

Event

An m3o.com API. For example usage see m3o.com/event/api.

Endpoints:

Consume

Consume events from a given topic.

https://m3o.com/event/api#Consume

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"))
	
	stream, err := eventService.Consume(&event.ConsumeRequest{
		Topic: "user",

	})
	if err != nil {
		fmt.Println(err)
		return
	}

	for {
			rsp, err := stream.Recv()
			if err != nil {
					fmt.Println(err)
					return
			}

			fmt.Println(rsp)
	}
}

Read

Read stored events

https://m3o.com/event/api#Read

package example

import(
	"fmt"
	"os"

	"go.m3o.com/event"
)

// Read stored events
func ReadEventsOnAtopic() {
	eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
	rsp, err := eventService.Read(&event.ReadRequest{
		Topic: "user",

	})
	fmt.Println(rsp, err)
	
}

Publish

Publish a event to the event stream.

https://m3o.com/event/api#Publish

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{}{
	"user": "john",
	"id": "1",
	"type": "signup",
},
Topic: "user",

	})
	fmt.Println(rsp, err)
	
}