config

package
v0.0.0-...-8626fa4 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2021 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package config will have necessary configuration for the application

Index

Constants

View Source
const (
	//DbHost is the environment variable storing the database access url
	DbHost = "DB_HOST"
	//DbPort is the environment variable storing the database access port
	DbPort = "DB_PORT"
	//DbDatabaseName is the environment variable storing the database name
	DbDatabaseName = "DB_DATABASE_NAME"
	//DbUsername is the environment variable storing the database username
	DbUsername = "DB_USERNAME"
	//DbPassword is the environment variable storing the database password
	DbPassword = "DB_PASSWORD"
	//EnabledDB is the environment variable stating whether the db is enabled or not
	EnabledDB = "ENABLE_DB"
)
View Source
const (
	//Namespace is websockets namespace
	Namespace = "/"
)

Variables

View Source
var (
	//Port in which the application is being served
	Port = "8078"
	//IntPort is the port converted into integer
	IntPort = 8078
	//RPCPort in which the application's rpc server is being served
	RPCPort = "8079"
	//RPCIntPort is the rpc port converted into integer
	RPCIntPort = 8079
	//RequestRTimeout of the api request body read timeout in milliseconds
	RequestRTimeout = time.Duration(2000 * time.Millisecond)
	//ResponseWTimeout of the api response write timeout in milliseconds
	ResponseWTimeout = time.Duration(10000 * time.Millisecond)
	//IdleRequestTimeout is the timeout after which unauthenticated requests must be disconnected of the system
	IdleRequestTimeout = time.Duration(10000 * time.Millisecond)
	//MaxRequestLife is the max request life time :- ie 4 hours is the default value
	MaxRequestLife = time.Duration(14400000)
	//MaxRequests is the maximum no. of requests catered at a given point of time
	MaxRequests = 1000
	//RequestCleanUpCheck is the time after which request cleanup check has to happen
	RequestCleanUpCheck = time.Duration(2 * time.Minute)
	//DiscoveryURL is the url of the discovery service
	DiscoveryURL = "127.0.0.1:8500"
	//DiscoveryToken is the token to communicate with discovery service
	DiscoveryToken = ""
	//ServiceDomain is the url on which the service will be available across the platform
	ServiceDomain = "127.0.0.1"
)
View Source
var IsTest bool

IsTest indicates that the current runtime is for test

View Source
var (
	//PRODUCTION is the switch to turn on and off the Production environment.
	//1: On, 0: Off
	PRODUCTION = 0
)
View Source
var SkipVault bool

SkipVault will skip the vault initialization if set true

View Source
var WebsocketsServerID = "Brain-Websockets-Server"

WebsocketsServerID is the service id to be used with the discovery service

View Source
var WebsocketsServerRPCID = "Brain-Websockets-Server-RPC"

WebsocketsServerRPCID is the rpc service id to be used with the discovery service

Functions

func RegisterWebsocketEvents

func RegisterWebsocketEvents(namespace, event string, evtHandler interface{})

RegisterWebsocketEvents will register websockets events to the websocket server instance

func RegisterWebsocketOnConnect

func RegisterWebsocketOnConnect(namespace string, f func(socketio.Conn) error)

RegisterWebsocketOnConnect will register the websocket on connect event callback

func RegisterWebsocketOnDisconnect

func RegisterWebsocketOnDisconnect(namespace string, f func(socketio.Conn, string))

RegisterWebsocketOnDisconnect will register the websocket on disconnect event callback

func RegisterWebsocketOnError

func RegisterWebsocketOnError(namespace string, f func(socketio.Conn, error))

RegisterWebsocketOnError will register the websocket on error event callback

func StartRPC

func StartRPC()

StartRPC service will start the rpc service. It helps the services to communicate between each other

Types

type AppContext

type AppContext struct {
	//ID of the app context
	ID int
	//Db is the database connection
	Db *gorm.DB
	//Log for logging purposes
	Log Logger
	//Session is the session associated with the request
	Session authConfig.Session
	//WebSockets has the web sockets server instance
	WebSockets *socketio.Server
}

AppContext contains the

func NewAppContext

func NewAppContext(l Logger, id int) *AppContext

NewAppContext returns an initlized app context

func (*AppContext) ConnectToDB

func (a *AppContext) ConnectToDB() error

ConnectToDB connects the database and updates the Db property of the context as new connection If any error happens in between , it will be returned and connection won't be set in the context

func (*AppContext) InitWebSockets

func (a *AppContext) InitWebSockets() error

InitWebSockets will initiate the websockets server

type DbConfig

type DbConfig struct {
	//Host to be used to connect to the database
	Host string
	//Port with which the database can be accessed
	Port string
	//Database to connect
	Database string
	//Username to access the connection
	Username string
	//Password to access the connection
	Password string
}

DbConfig is the database configuration to connect to it

func NewDbConfig

func NewDbConfig() *DbConfig

NewDbConfig will read the db config from the os environment variables and set it in the config

func (DbConfig) Connect

func (d DbConfig) Connect() (*gorm.DB, error)

Connect will connect the database. Will return an error if anything comes up else nil

type Logger

type Logger interface {
	//Info logs the informative logs
	Info(l ...interface{})
	//Debug logs for the debugging logs
	Debug(l ...interface{})
	//Warn logs the warning logs
	Warn(l ...interface{})
	//Error logs the error
	Error(l ...interface{})
	//Fatal logs the fatal issues
	Fatal(l ...interface{})
	//GetID returns the ID of the logger
	GetID() int
}

Logger must be implemented by the logger utilities to be an app logger

Jump to

Keyboard shortcuts

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