frame

package module
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2021 License: Apache-2.0 Imports: 28 Imported by: 29

README

frame Build Status

A simple bootstrap for quickly starting a simple server based on gocloud framework

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetEnv

func GetEnv(key, fallback string) string

GetEnv Obtains the environment key or returns the default value

func GetIp

func GetIp(r *http.Request) string

func GetLocalIP

func GetLocalIP() string

func GetMacAddress

func GetMacAddress() string

func ToContext

func ToContext(ctx context.Context, service *Service) context.Context

Types

type BaseModel

type BaseModel struct {
	ID         string `gorm:"type:varchar(50);primary_key"`
	CreatedAt  time.Time
	ModifiedAt time.Time
	Version    uint32         `gorm:"DEFAULT 0"`
	DeletedAt  gorm.DeletedAt `sql:"index"`
}

Migration Our simple table holding all the migration data

func (*BaseModel) BeforeCreate

func (model *BaseModel) BeforeCreate(db *gorm.DB) error

BeforeCreate Ensures we update a migrations time stamps

func (*BaseModel) BeforeUpdate

func (model *BaseModel) BeforeUpdate(db *gorm.DB) error

BeforeUpdate Updates time stamp every time we update status of a migration

func (*BaseModel) GetID

func (model *BaseModel) GetID() string

type BaseModelI

type BaseModelI interface {
	GetID() string
}

type Migration

type Migration struct {
	BaseModel

	Name      string `gorm:"type:varchar(50);unique_index"`
	Patch     string `gorm:"type:text"`
	AppliedAt *time.Time
}

Migration Our simple table holding all the migration data

type Option

type Option func(service *Service)

func Datastore

func Datastore(ctx context.Context, postgresqlConnection string, readOnly bool) Option

func GrpcServer

func GrpcServer(grpcServer *grpc.Server) Option

func HttpHandler

func HttpHandler(h http.Handler) Option

func HttpOptions

func HttpOptions(httpOpts *server.Options) Option

func RegisterPublisher

func RegisterPublisher(reference string, queueUrl string) Option

func RegisterSubscriber

func RegisterSubscriber(reference string, queueUrl string, concurrency int,
	handler SubscribeWorker) Option

func ServerListener

func ServerListener(listener net.Listener) Option

type Queue

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

type Service

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

func FromContext

func FromContext(ctx context.Context) *Service

func NewService

func NewService(name string, opts ...Option) *Service

func (*Service) AddCleanupMethod

func (s *Service) AddCleanupMethod(f func())

func (*Service) AddHealthCheck

func (s *Service) AddHealthCheck(checker health.Checker)

func (*Service) DB

func (s *Service) DB(ctx context.Context, readOnly bool) *gorm.DB

func (*Service) MigrateDatastore

func (s *Service) MigrateDatastore(ctx context.Context, migrationsDirPath string, migrations ...interface{}) error

PerformMigration finds missing migrations and records them in the database, We use the fragmenta_metadata table to do this

func (Service) Publish

func (s Service) Publish(ctx context.Context, reference string, message []byte, metadata map[string]string) error

func (Service) QID

func (s Service) QID(ctx context.Context, payload []byte) (string, error)

func (Service) QObject

func (s Service) QObject(ctx context.Context, model BaseModelI) ([]byte, map[string]string, error)

func (*Service) Run

func (s *Service) Run(ctx context.Context, address string) error

func (*Service) Stop

func (s *Service) Stop()

type SubscribeWorker

type SubscribeWorker interface {
	Handle(ctx context.Context, message []byte, metadata map[string]string) error
}

Jump to

Keyboard shortcuts

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