consumer

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 20, 2022 License: MIT Imports: 5 Imported by: 3

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Consumer

type Consumer struct {
	// contains filtered or unexported fields
}

func New

func New(eventName string, handler Handler, middlewares ...Middleware) *Consumer

func (*Consumer) Handle

func (c *Consumer) Handle(ctx context.Context, e events.Event) error

type Handler

type Handler func(ctx context.Context, m Message) error

func ApplyMiddlewares

func ApplyMiddlewares(handler Handler, middlewares []Middleware) Handler
Example
package main

import (
	"context"
	"fmt"
	"log"
)

func newHandler(name string) Handler {
	return func(ctx context.Context, m Message) error {
		fmt.Println(name)
		return nil
	}
}

func newMiddleware(name string) Middleware {
	return func(next Handler) Handler {
		return func(ctx context.Context, m Message) error {
			fmt.Println(name)
			return next(ctx, m)
		}
	}
}

func main() {

	handler := ApplyMiddlewares(
		newHandler("handler"),
		[]Middleware{
			newMiddleware("mdw-1"),
			newMiddleware("mdw-2"),
			newMiddleware("mdw-3"),
		},
	)

	if err := handler(nil, nil); err != nil {
		log.Fatal(err)
	}

}
Output:

mdw-1
mdw-2
mdw-3
handler

type Message

type Message interface {
	ID() string
	Key() string
	EventName() string
	Header() events.Header
	TopicPartition() events.TopicPartition
	DecodePayload(v interface{}) error
}

type Middleware

type Middleware func(next Handler) Handler

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL