adr

package
v0.4.1-beta Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ChangeStatus

func ChangeStatus(
	adrId int,
	status string,
	repository Repository,
	statusManager StatusManager,
	writer Writer,
) (string, error)

ChangeStatus is the application service for changing the status in an ADR File It validates the status if there is a list of allowed statuses configured by user

func CreateFile

func CreateFile(
	date string,
	title string,
	meta []string,
	supersedesTargetADRId int,
	amendsTargetADRId int,
	config config.Config,
	repository Repository,
	writer Writer,
	templateService template.Service,
	relationsManager RelationsManager,
) (string, error)

CreateFile is the application service for creating a new ADR file

func ValidateFilename

func ValidateFilename(name string) bool

ValidateFilename validates if a string is a correct filename for an ADR File

Types

type ADR

type ADR interface {
	ID() int
	Filename() Filename
	Status() string
	Title() string
	Date() string
	Content() string
}

ADR is the domain entity representing the ADR file

func CreateADR

func CreateADR(id int, content string, filename Filename) (ADR, error)

CreateADR creates the ADR entity and validates its required properties

type Filename

type Filename interface {
	Value() string
}

Filename is the domain value object for the ADR filename property

func CreateFilename

func CreateFilename(id int, title string, idDigits int) Filename

CreateFilename creates the Filename value object

func CreateFilenameFromFilenameString

func CreateFilenameFromFilenameString(filename string) (Filename, error)

CreateFilenameFromFilenameString creates the Filename value object from a filename string

type RelationsManager

type RelationsManager interface {
	AddRelation(adr ADR, targetADR ADR, relation string) (ADR, ADR, error)
	RelationIsValid(relation string) bool
}

RelationsManager service that manage the relation links between ADR files

func CreateRelationsManager

func CreateRelationsManager(service template.Service, manager StatusManager) RelationsManager

CreateRelationsManager creates the RelationsManager service with its dependencies

type Repository

type Repository interface {
	FindAll() ([]ADR, error)
	Query(filterParams map[string][]string) ([]ADR, error)
	FindById(id int) (ADR, error)
	GetLastId() int
}

Repository is the repository for the ADR domain entity

type StatusManager

type StatusManager interface {
	ChangeStatus(adr ADR, newStatus string) (ADR, error)
	ValidateStatus(targetStatus string) bool
}

StatusManager is the service that manages the status change in a ADR entity

func CreateStatusManager

func CreateStatusManager(configuration config.Config) StatusManager

CreateStatusManager creates the StatusManager service with its dependencies

type Writer

type Writer interface {
	Persist(adr ADR) error
}

Writer service that persist the ADR entity

Jump to

Keyboard shortcuts

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