Documentation
¶
Overview ¶
Package "asyncapi" provides primitives to interact with the AsyncAPI specification.
Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.
Index ¶
- Constants
- Variables
- type AppController
- func (ac *AppController) Close()
- func (ac *AppController) Listen(irq chan interface{})
- func (ac *AppController) PublishUserSignedin(msg UserSignedinMessage) error
- func (ac *AppController) PublishUserSignedup(msg UserSignedUpExtraWordingMessage) error
- func (ac *AppController) SubscribeAll(as AppSubscriber) error
- func (ac *AppController) SubscribeUserDelete(fn func(msg UserDeleteMessage)) error
- func (ac *AppController) SubscribeUserModify(fn func(msg UserModifyExtraWordingMessage)) error
- func (ac *AppController) UnsubscribeAll()
- func (ac *AppController) UnsubscribeUserDelete()
- func (ac *AppController) UnsubscribeUserModify()
- type AppSubscriber
- type BrokerController
- type ClientController
- func (cc *ClientController) Close()
- func (cc *ClientController) Listen(irq chan interface{})
- func (cc *ClientController) PublishUserDelete(msg UserDeleteMessage) error
- func (cc *ClientController) PublishUserModify(msg UserModifyExtraWordingMessage) error
- func (cc *ClientController) SubscribeAll(cs ClientSubscriber) error
- func (cc *ClientController) SubscribeUserSignedin(fn func(msg UserSignedinMessage)) error
- func (cc *ClientController) SubscribeUserSignedup(fn func(msg UserSignedUpExtraWordingMessage)) error
- func (cc *ClientController) UnsubscribeAll()
- func (cc *ClientController) UnsubscribeUserSignedin()
- func (cc *ClientController) UnsubscribeUserSignedup()
- func (cc *ClientController) WaitForUserSignedup(correlationID string, pub func() error, timeout time.Duration) (UserSignedUpExtraWordingMessage, error)
- type ClientSubscriber
- type Limit
- type Number
- type Number32
- type Number64
- type SchemaStruct
- type Total
- type UniversalMessage
- type UserDeleteMessage
- type UserModifyExtraWordingMessage
- type UserSignedUpExtraWording
- type UserSignedUpExtraWordingMessage
- type UserSignedinMessage
Constants ¶
const (
// CorrelationIDField is the name of the field that will contain the correlation ID
CorrelationIDField = "correlation_id"
)
Variables ¶
var ( // Generic error for AsyncAPI generated code ErrAsyncAPI = errors.New("error when using AsyncAPI") // ErrTimedOut is given when any timeout happen ErrTimedOut = fmt.Errorf("%w: time out", 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(bs BrokerController) *AppController
NewAppController links the application to the broker
func (*AppController) Close ¶
func (ac *AppController) Close()
Close will clean up any existing resources on the controller
func (*AppController) Listen ¶
func (ac *AppController) Listen(irq chan interface{})
Listen will let the controller handle subscriptions and will be interrupted only when an struct is sent on the interrupt channel
func (*AppController) PublishUserSignedin ¶
func (ac *AppController) PublishUserSignedin(msg UserSignedinMessage) error
PublishUserSignedin will publish messages to 'user/signedin' channel
func (*AppController) PublishUserSignedup ¶
func (ac *AppController) PublishUserSignedup(msg UserSignedUpExtraWordingMessage) error
PublishUserSignedup will publish messages to 'user/signedup' channel
func (*AppController) SubscribeAll ¶
func (ac *AppController) SubscribeAll(as AppSubscriber) error
SubscribeAll will subscribe to channels on which the app is expecting messages
func (*AppController) SubscribeUserDelete ¶
func (ac *AppController) SubscribeUserDelete(fn func(msg UserDeleteMessage)) error
SubscribeUserDelete will subscribe to new messages from 'user/delete' channel
func (*AppController) SubscribeUserModify ¶
func (ac *AppController) SubscribeUserModify(fn func(msg UserModifyExtraWordingMessage)) error
func (*AppController) UnsubscribeAll ¶
func (ac *AppController) UnsubscribeAll()
UnsubscribeAll will unsubscribe all remaining subscribed channels
func (*AppController) UnsubscribeUserDelete ¶
func (ac *AppController) UnsubscribeUserDelete()
UnsubscribeUserDelete will unsubscribe messages from 'user/delete' channel
func (*AppController) UnsubscribeUserModify ¶
func (ac *AppController) UnsubscribeUserModify()
UnsubscribeUserModify will unsubscribe messages from 'user/modify' channel
type AppSubscriber ¶
type AppSubscriber interface {
// UserDelete
UserDelete(msg UserDeleteMessage)
// UserModify
UserModify(msg UserModifyExtraWordingMessage)
}
AppSubscriber represents all application handlers that are expecting messages from clients
type BrokerController ¶
type BrokerController interface {
// Publish a message to the broker
Publish(channel string, mw UniversalMessage) error
// Subscribe to messages from the broker
Subscribe(channel string) (msgs chan UniversalMessage, stop chan interface{}, err error)
}
BrokerController represents the functions that should be implemented to connect the broker to the application or the client
type ClientController ¶
type ClientController struct {
// contains filtered or unexported fields
}
ClientController is the structure that provides publishing capabilities to the developer and and connect the broker with the client
func NewClientController ¶
func NewClientController(bs BrokerController) *ClientController
NewClientController links the client to the broker
func (*ClientController) Close ¶
func (cc *ClientController) Close()
Close will clean up any existing resources on the controller
func (*ClientController) Listen ¶ added in v0.2.0
func (cc *ClientController) Listen(irq chan interface{})
Listen will let the controller handle subscriptions and will be interrupted only when an struct is sent on the interrupt channel
func (*ClientController) PublishUserDelete ¶
func (cc *ClientController) PublishUserDelete(msg UserDeleteMessage) error
PublishUserDelete will publish messages to 'user/delete' channel
func (*ClientController) PublishUserModify ¶
func (cc *ClientController) PublishUserModify(msg UserModifyExtraWordingMessage) error
PublishUserModify will publish messages to 'user/modify' channel
func (*ClientController) SubscribeAll ¶
func (cc *ClientController) SubscribeAll(cs ClientSubscriber) error
SubscribeAll will subscribe to channels on which the client is expecting messages
func (*ClientController) SubscribeUserSignedin ¶
func (cc *ClientController) SubscribeUserSignedin(fn func(msg UserSignedinMessage)) error
SubscribeUserSignedin will subscribe to new messages from 'user/signedin' channel
func (*ClientController) SubscribeUserSignedup ¶
func (cc *ClientController) SubscribeUserSignedup(fn func(msg UserSignedUpExtraWordingMessage)) error
SubscribeUserSignedup will subscribe to new messages from 'user/signedup' channel
func (*ClientController) UnsubscribeAll ¶
func (cc *ClientController) UnsubscribeAll()
UnsubscribeAll will unsubscribe all remaining subscribed channels
func (*ClientController) UnsubscribeUserSignedin ¶
func (cc *ClientController) UnsubscribeUserSignedin()
UnsubscribeUserSignedin will unsubscribe messages from 'user/signedin' channel
func (*ClientController) UnsubscribeUserSignedup ¶
func (cc *ClientController) UnsubscribeUserSignedup()
UnsubscribeUserSignedup will unsubscribe messages from 'user/signedup' channel
func (*ClientController) WaitForUserSignedup ¶ added in v0.2.0
func (cc *ClientController) WaitForUserSignedup(correlationID string, pub func() error, timeout time.Duration) (UserSignedUpExtraWordingMessage, error)
WaitForUserSignedup will wait for a specific message by its correlation ID
The pub function is the publication function that should be used to send the message It will be called after subscribing to the channel to avoid race condition, and potentially loose the message
type ClientSubscriber ¶
type ClientSubscriber interface {
// UserSignedin
UserSignedin(msg UserSignedinMessage)
// UserSignedup
UserSignedup(msg UserSignedUpExtraWordingMessage)
}
ClientSubscriber represents all application handlers that are expecting messages from application
type Limit ¶
type Limit int32
Limit is a component of the AsyncAPI specification required in messages
type Number ¶
type Number float64
Number is a component of the AsyncAPI specification required in messages
type Number32 ¶
type Number32 float32
Number32 is a component of the AsyncAPI specification required in messages
type Number64 ¶
type Number64 float64
Number64 is a component of the AsyncAPI specification required in messages
type SchemaStruct ¶
type SchemaStruct string
SchemaStruct is a component of the AsyncAPI specification required in messages
type Total ¶
type Total int64
Total is a component of the AsyncAPI specification required in messages
type UniversalMessage ¶
UniversalMessage is a wrapper that will contain all information regarding a message
type UserDeleteMessage ¶
type UserDeleteMessage struct {
// Payload will be inserted in the message payload
Payload int64
}
UserDeleteMessage is the message expected for 'UserDelete' channel
func NewUserDeleteMessage ¶ added in v0.2.0
func NewUserDeleteMessage() UserDeleteMessage
type UserModifyExtraWordingMessage ¶
type UserModifyExtraWordingMessage struct {
// Payload will be inserted in the message payload
Payload struct {
// Name
Name string `json:"name"`
}
}
UserModifyExtraWordingMessage is the message expected for 'UserModifyExtraWording' channel
func NewUserModifyExtraWordingMessage ¶ added in v0.2.0
func NewUserModifyExtraWordingMessage() UserModifyExtraWordingMessage
type UserSignedUpExtraWording ¶
type UserSignedUpExtraWording string
UserSignedUpExtraWording is a component of the AsyncAPI specification required in messages
type UserSignedUpExtraWordingMessage ¶
type UserSignedUpExtraWordingMessage struct {
// Headers will be used to fill the message headers
Headers struct {
// CorrelationID
CorrelationID string `json:"correlation_id"`
}
// Payload will be inserted in the message payload
Payload struct {
// Name of the user
DisplayName string `json:"display_name"`
// Email of the user
Email string `json:"email"`
// Schema
Schema SchemaStruct `json:"schema"`
}
}
UserSignedUpExtraWordingMessage is the message expected for 'UserSignedUpExtraWording' channel
func NewUserSignedUpExtraWordingMessage ¶ added in v0.2.0
func NewUserSignedUpExtraWordingMessage() UserSignedUpExtraWordingMessage
type UserSignedinMessage ¶
type UserSignedinMessage struct {
// Payload will be inserted in the message payload
Payload int64
}
UserSignedinMessage is the message expected for 'UserSignedin' channel
func NewUserSignedinMessage ¶ added in v0.2.0
func NewUserSignedinMessage() UserSignedinMessage