microapp

package module
v1.13.2 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2021 License: MIT Imports: 33 Imported by: 0

README

microapp

Simple microservice framework in go!

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetCorrelationIDFromRequest

func GetCorrelationIDFromRequest(r *http.Request) string

GetCorrelationIDFromRequest returns correlationId from request header

Types

type App

type App struct {
	Name   string
	Config *config.Config
	DB     *gorm.DB
	Router *mux.Router
	// contains filtered or unexported fields
}

App structure for tenant microservice

func New

func New(appName string, appConfigDefaults map[string]interface{}, appLog zerolog.Logger, appDB *gorm.DB, appEventDispatcher event.Dispatcher) *App

New creates a new microApp

func NewWithEnvValues

func NewWithEnvValues(appName string, appConfigDefaults map[string]interface{}) *App

NewWithEnvValues creates a new application with environment variable values for initializing database, event dispatcher and logger.

func (*App) DispatchEvent

func (app *App) DispatchEvent(token string, corelationID string, topic string, payload interface{})

DispatchEvent delegates to eventDispatcher.

func (*App) GetConnectionString

func (app *App) GetConnectionString() string

GetConnectionString gets database connection string

func (*App) Initialize

func (app *App) Initialize(routeSpecifiers []RouteSpecifier)

Initialize initializes properties of the app

func (*App) Logger

func (app *App) Logger(module string) *zerolog.Logger

Logger returns logger for specified module

func (*App) MigrateDB

func (app *App) MigrateDB()

MigrateDB Looks for migrations directory and runs the migrations scripts in that directory

func (*App) NewExecutionContext

func (app *App) NewExecutionContext(uow *repository.UnitOfWork, token *security.JwtToken, correlationID string, action string) microappCtx.ExecutionContext

NewExecutionContext creates new exectuion context

func (*App) NewExecutionContextWithCustomToken

func (app *App) NewExecutionContextWithCustomToken(uow *repository.UnitOfWork, tenantID uuid.UUID, userID uuid.UUID, username string, correlationID string, action string) microappCtx.ExecutionContext

NewExecutionContextWithCustomToken creates new exectuion context with custom made token

func (*App) NewExecutionContextWithSystemToken

func (app *App) NewExecutionContextWithSystemToken(uow *repository.UnitOfWork, correlationID string, action string) microappCtx.ExecutionContext

NewExecutionContextWithSystemToken creates new exectuion context with sys default token

func (*App) NewUnitOfWork

func (app *App) NewUnitOfWork(readOnly bool) *repository.UnitOfWork

NewUnitOfWork creates new UnitOfWork

func (*App) Start

func (app *App) Start()

Start http server and start listening to the requests

func (*App) StartSecure

func (app *App) StartSecure(securityCert string, securityKey string)

StartSecure starts https server and listens to the requests

func (*App) Stop

func (app *App) Stop()

Stop http server

type RouteSpecifier

type RouteSpecifier interface {
	RegisterRoutes(router *mux.Router)
}

RouteSpecifier should be implemented by the class that sets routes for the API endpoints

type TestApp

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

TestApp Provides convinience methods for test

func NewTestApp

func NewTestApp(appName string, controllerRouteProvider func(*App) []RouteSpecifier, dbInitializer func(db *gorm.DB), verbose bool) *TestApp

NewTestApp returns new instance of TestApp

func (*TestApp) AddAssociations

func (testApp *TestApp) AddAssociations(entity interface{}, associationName string, associations ...interface{}) error

AddAssociations adds associations to the given entity

func (*TestApp) AssertEqualWithFieldsToCheck

func (testApp *TestApp) AssertEqualWithFieldsToCheck(t *testing.T, expected interface{}, actual interface{}, fieldsToChk []string, mapOfExpectedToActualField map[string]string)

AssertEqualWithFieldsToCheck asserts whether two objects are equal

func (*TestApp) AssertEqualWithFieldsToIgnore

func (testApp *TestApp) AssertEqualWithFieldsToIgnore(t *testing.T, expected interface{}, actual interface{}, fieldsToIgnore []string, mapOfExpectedToActualField map[string]string)

AssertEqualWithFieldsToIgnore asserts whether two objects are equal

func (*TestApp) AssertErrorResponse

func (testApp *TestApp) AssertErrorResponse(t *testing.T, response *httptest.ResponseRecorder, expectedErrorKey string, expectedErrorField string, expectedError string)

AssertErrorResponse checks if the http response contains expected errorKey, errorField and errorMessage

func (*TestApp) AssertXTotalCount

func (testApp *TestApp) AssertXTotalCount(t *testing.T, response *httptest.ResponseRecorder, expectedXTotalCount int)

AssertXTotalCount checks if the http response header contains expected x-total-count

func (*TestApp) CallAPI

func (testApp *TestApp) CallAPI(httpMethod string, apiURL string, token string, req interface{}) *httptest.ResponseRecorder

CallAPI invokes http API

func (*TestApp) Check

func (testApp *TestApp) Check(t *testing.T, name string, expected, actual interface{}, failNow bool)

Check checks whether the expected and actual value matches

func (*TestApp) CheckResponseCode

func (testApp *TestApp) CheckResponseCode(t *testing.T, expected, actual int)

CheckResponseCode checks if the http response is as expected

func (*TestApp) ExecuteRequest

func (testApp *TestApp) ExecuteRequest(req *http.Request) *httptest.ResponseRecorder

ExecuteRequest executes the http request

func (*TestApp) GetAdminToken

func (testApp *TestApp) GetAdminToken(tenantID string, userID string, scope []string) string

GetAdminToken returns a test token

func (*TestApp) GetAll

func (testApp *TestApp) GetAll(out interface{}, preloads []string, whereClause string, whereParams []interface{}, orderBy string) error

GetAll gets all from DB

func (*TestApp) GetByID

func (testApp *TestApp) GetByID(out interface{}, preloads []string, id string) error

GetByID gets entity by ids

func (*TestApp) GetFullAdminToken

func (testApp *TestApp) GetFullAdminToken(tenantID string, userID string, username string, name string, externalID string, externalIDType string, scope []string) string

GetFullAdminToken returns a test token with all the fields along with different external IDs for types such as Appliance, Session, User. These external IDs are used with REST api is invoked from another REST API service as opposed to the getting hit from UI by the user.

func (*TestApp) GetFullToken

func (testApp *TestApp) GetFullToken(tenantID string, userID string, username string, name string, externalID string, externalIDType string, scope []string) string

GetFullToken returns a test token with all the fields along with different external IDs for types such as Appliance, Session, User. These external IDs are used with REST api is invoked from another REST API service as opposed to the getting hit from UI by the user.

func (*TestApp) GetStandardAdminToken

func (testApp *TestApp) GetStandardAdminToken(tenantID string, userID string, username string, name string, scope []string) string

GetStandardAdminToken returns a test admin token with all standard fields.

func (*TestApp) GetStandardToken

func (testApp *TestApp) GetStandardToken(tenantID string, userID string, username string, name string, scope []string) string

GetStandardToken returns a test token with all standard fields

func (*TestApp) GetToken

func (testApp *TestApp) GetToken(tenantID string, userID string, scope []string) string

GetToken gets a token to connect to API

func (*TestApp) Initialize

func (testApp *TestApp) Initialize()

Initialize prepares the app for testing

func (*TestApp) PrepareEmptyTables

func (testApp *TestApp) PrepareEmptyTables()

PrepareEmptyTables clears all table of data

func (*TestApp) SaveToDB

func (testApp *TestApp) SaveToDB(entity interface{}) error

SaveToDB saves the entity to database

func (*TestApp) SetControllerRouteProviderAndInitialize

func (testApp *TestApp) SetControllerRouteProviderAndInitialize(controllerRouteProvider func(*App) []RouteSpecifier)

SetControllerRouteProviderAndInitialize sets the controllerRouteProvider and initializes application

func (*TestApp) Stop

func (testApp *TestApp) Stop()

Stop the app

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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