app

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2022 License: MIT Imports: 3 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppPlugins

type AppPlugins struct {
	LogPlugins    *[]LogPlugin
	RouterPlugins *[]RouterPlugin
	LoggerPlugins *[]LoggerPlugin
	Plugins       *[]BasePlugin
}

type AppRepos

type AppRepos struct {
	Log           domain.LogRepository
	LogStream     domain.LogStreamRepository
	Clients       domain.ClientsRepository
	Subscriptions domain.SubscriptionsRepository
}

type AppUseCases

type AppUseCases struct {
	Log       domain.LogUseCase
	LogStream domain.LogStreamUseCase
	Clients   domain.ClientsUseCase
}

type AppendLogger

type AppendLogger = func(context *Context) domain.Logger

type BasePlugin

type BasePlugin interface {
	Name() string
	OnInit(context *Context)
	OnAfterServe(context *Context)
	OnAfterClose(context *Context)
	OnDeInit(context *Context)
}

type Config

type Config struct {
	Version                  string
	Name                     string
	ServerID                 string
	Timeout                  time.Duration
	LogWorkers               int
	LogsChannelBuffer        int
	MaxAmountOfStoredLogs    int
	ClientCheckInterval      time.Duration
	MaxClientResponseLatency time.Duration
	Production               bool
	Host                     string
	Port                     int
}

type Context

type Context struct {
	Config   Config
	Server   *fiber.App
	Logger   *domain.Logger
	Plugins  *AppPlugins
	UseCases *AppUseCases
	Repos    *AppRepos
}

func NewAppContext

func NewAppContext(config Config, server *fiber.App, logger domain.Logger) *Context

func (Context) RequireModule

func (a Context) RequireModule(name string)

type HandleLog

type HandleLog = func(log domain.Log)

type LogPlugin

type LogPlugin interface {
	BasePlugin
	HandleLog(log domain.Log)
}

type LoggerPlugin

type LoggerPlugin interface {
	BasePlugin
	AppendLogger(context *Context) domain.Logger
}

type Plugin

type Plugin interface {
	BasePlugin
	HandleLog(log domain.Log)
	SetupRouter(router fiber.Router, context *Context)
	AppendLogger(context *Context) domain.Logger
}

type RouterPlugin

type RouterPlugin interface {
	BasePlugin
	SetupRouter(router fiber.Router, context *Context)
}

type SetupRouter

type SetupRouter = func(router fiber.Router, context *Context)

Jump to

Keyboard shortcuts

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