notificationview

package
v0.0.0-...-803885c Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2021 License: MIT Imports: 9 Imported by: 3

Documentation

Index

Constants

View Source
const CloneViewFactoryName = "clone"

CloneViewFactoryName clone view factory name

Variables

View Source
var ErrEmptyViewName = errors.New("notification view:empty view name")

Functions

func Factories

func Factories() []string

Factories returns a sorted list of the names of the registered factories.

func IsErrViewNotFound

func IsErrViewNotFound(err error) bool

IsErrViewNotFound check if given error is ErrDeliveryNotFound.

func Register

func Register(name string, f Factory)

Register makes a view creator available by the provided name. If Register is called twice with the same name or if driver is nil, it panics.

func RegisterBuiltinFactories

func RegisterBuiltinFactories()

RegisterBuiltinFactories register builtin factories

func UnregisterAll

func UnregisterAll()

UnregisterAll unregister all factory

Types

type AtomicViewCenter

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

AtomicViewCenter render center which use atomic.Value to implement concurrently update,

func NewAtomicViewCenter

func NewAtomicViewCenter() *AtomicViewCenter

NewAtomicViewCenter create new atomic render center.

func (*AtomicViewCenter) Get

func (c *AtomicViewCenter) Get(name string) (View, error)

Get get view by given name. ErrViewNotFound should be returned if given name not found.

func (*AtomicViewCenter) SetViewCenter

func (c *AtomicViewCenter) SetViewCenter(center ViewCenter)

SetViewCenter atomicly update render center.

func (*AtomicViewCenter) ViewCenter

func (c *AtomicViewCenter) ViewCenter() ViewCenter

ViewCenter return render center actually used.

type CloneView

type CloneView struct {
	Delivery string
}

CloneView view clone message to notification content

func (*CloneView) Render

func (v *CloneView) Render(m Message) (*notification.Notification, error)

Render render notification with given message. Nil should be returned if notification should not be send.

type Config

type Config struct {
	Views []*NamedViewConfig
}

func (*Config) CreateViewCenter

func (c *Config) CreateViewCenter() (ViewCenter, error)

type ErrViewNotFound

type ErrViewNotFound struct {
	View string
}

ErrViewNotFound error raised if view not found

func NewErrViewNotFound

func NewErrViewNotFound(view string) *ErrViewNotFound

NewErrViewNotFound create new ErrDeliveryNotFound

func (*ErrViewNotFound) Error

func (e *ErrViewNotFound) Error() string

Error return error message

type Factory

type Factory func(loader func(v interface{}) error) (View, error)

Factory view factory

type Message

type Message map[string]string

Message Message type Message stores raw information.

func NewMessage

func NewMessage() Message

NewMessage create new message.

func (Message) Get

func (m Message) Get(name string) string

Get get give value with given name from message Name will be converted to lower

func (Message) Length

func (m Message) Length() int

Length return message length

func (Message) MustSetAsJSON

func (m Message) MustSetAsJSON(name string, v interface{})

MustSetAsJSON set give value as json with given name to message Name will be converted to lower Panic if marshal fail

func (Message) Range

func (m Message) Range(f func(string, string) bool)

Range range over message with given function. Stop range if function return false,

func (Message) Set

func (m Message) Set(name string, value string)

Set set give value with given name to message Name will be converted to lower

type NamedViewConfig

type NamedViewConfig struct {
	Name        string
	Description string
	ViewConfig
}

type PlainViewCenter

type PlainViewCenter map[string]View

PlainViewCenter plain render center struct

func NewViewCenter

func NewViewCenter() *PlainViewCenter

NewViewCenter create new plain render center

func (*PlainViewCenter) Get

func (c *PlainViewCenter) Get(name string) (View, error)

Get get view by given name. ErrViewNotFound should be returned if given name not found.

func (*PlainViewCenter) Set

func (c *PlainViewCenter) Set(name string, r View)

Set set view with given name.

type View

type View interface {
	//Render render notification with given message.
	//Nil should be returned if notification should not be send.
	Render(Message) (*notification.Notification, error)
}

View view interface

func CloneViewFactory

func CloneViewFactory(loader func(v interface{}) error) (View, error)

CloneViewFactory clone view factory

func NewView

func NewView(name string, loader func(v interface{}) error) (View, error)

NewView create new view with given name and loader. Reutrn driver created and any error if raised.

type ViewCenter

type ViewCenter interface {
	//Get get view by given name.
	//ErrViewNotFound should be returned if given name not found.
	Get(name string) (View, error)
}

ViewCenter render center interface

type ViewConfig

type ViewConfig struct {
	//RenderType
	Type string
	//RenderConfig render config
	Config func(v interface{}) error `config:", lazyload"`
}

func (*ViewConfig) CreateView

func (c *ViewConfig) CreateView() (View, error)

Jump to

Keyboard shortcuts

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