issue74

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package "issue74" provides primitives to interact with the AsyncAPI specification.

Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.

Index

Constants

This section is empty.

Variables

View Source
var (
	// Generic error for AsyncAPI generated code
	ErrAsyncAPI = errors.New("error when using AsyncAPI")

	// ErrContextCanceled is given when a given context is canceled
	ErrContextCanceled = fmt.Errorf("%w: context canceled", ErrAsyncAPI)

	// ErrNilBrokerController is raised when a nil broker controller is user
	ErrNilBrokerController = fmt.Errorf("%w: nil broker controller has been used", ErrAsyncAPI)

	// ErrNilAppSubscriber is raised when a nil app subscriber is user
	ErrNilAppSubscriber = fmt.Errorf("%w: nil app subscriber has been used", ErrAsyncAPI)

	// ErrNilUserSubscriber is raised when a nil user subscriber is user
	ErrNilUserSubscriber = fmt.Errorf("%w: nil user subscriber has been used", ErrAsyncAPI)

	// ErrAlreadySubscribedChannel is raised when a subscription is done twice
	// or more without unsubscribing
	ErrAlreadySubscribedChannel = fmt.Errorf("%w: the channel has already been subscribed", ErrAsyncAPI)

	// ErrSubscriptionCanceled is raised when expecting something and the subscription has been canceled before it happens
	ErrSubscriptionCanceled = fmt.Errorf("%w: the subscription has been canceled", ErrAsyncAPI)
)

Functions

This section is empty.

Types

type AppController

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

AppController is the structure that provides publishing capabilities to the developer and and connect the broker with the App

func NewAppController

func NewAppController(bc extensions.BrokerController, options ...ControllerOption) (*AppController, error)

NewAppController links the App to the broker

func (*AppController) Close

func (c *AppController) Close(ctx context.Context)

Close will clean up any existing resources on the controller

func (*AppController) SubscribeAll

func (c *AppController) SubscribeAll(ctx context.Context, as AppSubscriber) error

SubscribeAll will subscribe to channels without parameters on which the app is expecting messages. For channels with parameters, they should be subscribed independently.

func (*AppController) SubscribeTestChannel

func (c *AppController) SubscribeTestChannel(ctx context.Context, fn func(ctx context.Context, msg TestMessage, done bool)) error

SubscribeTestChannel will subscribe to new messages from 'testChannel' channel.

Callback function 'fn' will be called each time a new message is received. The 'done' argument indicates when the subscription is canceled and can be used to clean up resources.

func (*AppController) UnsubscribeAll

func (c *AppController) UnsubscribeAll(ctx context.Context)

UnsubscribeAll will unsubscribe all remaining subscribed channels

func (*AppController) UnsubscribeTestChannel

func (c *AppController) UnsubscribeTestChannel(ctx context.Context)

UnsubscribeTestChannel will unsubscribe messages from 'testChannel' channel

type AppSubscriber

type AppSubscriber interface {
	// TestChannel subscribes to messages placed on the 'testChannel' channel
	TestChannel(ctx context.Context, msg TestMessage, done bool)
}

AppSubscriber represents all handlers that are expecting messages for App

type ControllerOption added in v0.21.0

type ControllerOption func(controller *controller)

ControllerOption is the type of the options that can be passed when creating a new Controller

func WithLogger added in v0.21.0

func WithLogger(logger extensions.Logger) ControllerOption

WithLogger attaches a logger to the controller

func WithMiddlewares added in v0.21.0

func WithMiddlewares(middlewares ...extensions.Middleware) ControllerOption

WithMiddlewares attaches middlewares that will be executed when sending or receiving messages

type Error

type Error struct {
	Channel string
	Err     error
}

func (*Error) Error

func (e *Error) Error() string

type HeaderSchema

type HeaderSchema struct {
	// Description: Date in UTC format "YYYY-MM-DDThh:mm:ss.sZ".
	DateTime time.Time `json:"date_time"`

	// Description: Schema version
	Version string `json:"version"`
}

HeaderSchema is a schema from the AsyncAPI specification required in messages Description: header

type MessageWithCorrelationID

type MessageWithCorrelationID interface {
	CorrelationID() string
	SetCorrelationID(id string)
}

type TestMessage

type TestMessage struct {
	// Headers will be used to fill the message headers
	Headers HeaderSchema

	// Payload will be inserted in the message payload
	Payload struct {
		Obj1 struct {
			// Description: reference ID.
			ReferenceID string `json:"reference_id"`
		} `json:"obj1"`
	}
}

TestMessage is the message expected for 'Test' channel test message

func NewTestMessage

func NewTestMessage() TestMessage

type TestSchemaSchema

type TestSchemaSchema struct {
	Obj1 struct {
		// Description: reference ID.
		ReferenceID string `json:"reference_id"`
	} `json:"obj1"`
}

TestSchemaSchema is a schema from the AsyncAPI specification required in messages

type UserController added in v0.20.0

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

UserController is the structure that provides publishing capabilities to the developer and and connect the broker with the User

func NewUserController added in v0.20.0

func NewUserController(bc extensions.BrokerController, options ...ControllerOption) (*UserController, error)

NewUserController links the User to the broker

func (*UserController) Close added in v0.20.0

func (c *UserController) Close(ctx context.Context)

Close will clean up any existing resources on the controller

func (*UserController) PublishTestChannel added in v0.20.0

func (c *UserController) PublishTestChannel(ctx context.Context, msg TestMessage) error

PublishTestChannel will publish messages to 'testChannel' channel

Jump to

Keyboard shortcuts

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