Documentation
¶
Index ¶
- func IsValidTransition(from, to types.SignRequestStatus) bool
- type StateMachine
- func (sm *StateMachine) ApproveForSigning(ctx context.Context, reqID types.SignRequestID, ruleID *types.RuleID, ...) (*TransitionResult, error)
- func (sm *StateMachine) CompleteSign(ctx context.Context, reqID types.SignRequestID, signature []byte, ...) (*TransitionResult, error)
- func (sm *StateMachine) FailSign(ctx context.Context, reqID types.SignRequestID, errorMsg string) (*TransitionResult, error)
- func (sm *StateMachine) RejectOnAuthorization(ctx context.Context, reqID types.SignRequestID, rejectedBy string, ...) (*TransitionResult, error)
- func (sm *StateMachine) RejectOnValidation(ctx context.Context, reqID types.SignRequestID, reason string) (*TransitionResult, error)
- func (sm *StateMachine) ValidateAndStartAuthorizing(ctx context.Context, reqID types.SignRequestID) (*TransitionResult, error)
- type TransitionResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsValidTransition ¶
func IsValidTransition(from, to types.SignRequestStatus) bool
IsValidTransition checks if a state transition is valid
Types ¶
type StateMachine ¶
type StateMachine struct {
// contains filtered or unexported fields
}
StateMachine manages the lifecycle of sign requests
func NewStateMachine ¶
func NewStateMachine(requestRepo storage.RequestRepository, auditRepo storage.AuditRepository, logger *slog.Logger) (*StateMachine, error)
NewStateMachine creates a new state machine
func (*StateMachine) ApproveForSigning ¶
func (sm *StateMachine) ApproveForSigning(ctx context.Context, reqID types.SignRequestID, ruleID *types.RuleID, approvedBy *string, reason string) (*TransitionResult, error)
ApproveForSigning transitions from authorizing to signing (after rule match or manual approval)
func (*StateMachine) CompleteSign ¶
func (sm *StateMachine) CompleteSign(ctx context.Context, reqID types.SignRequestID, signature []byte, signedData []byte) (*TransitionResult, error)
CompleteSign transitions from signing to completed
func (*StateMachine) FailSign ¶
func (sm *StateMachine) FailSign(ctx context.Context, reqID types.SignRequestID, errorMsg string) (*TransitionResult, error)
FailSign transitions from signing to failed
func (*StateMachine) RejectOnAuthorization ¶
func (sm *StateMachine) RejectOnAuthorization(ctx context.Context, reqID types.SignRequestID, rejectedBy string, reason string) (*TransitionResult, error)
RejectOnAuthorization transitions from authorizing to rejected
func (*StateMachine) RejectOnValidation ¶
func (sm *StateMachine) RejectOnValidation(ctx context.Context, reqID types.SignRequestID, reason string) (*TransitionResult, error)
RejectOnValidation transitions from pending to rejected due to validation failure
func (*StateMachine) ValidateAndStartAuthorizing ¶
func (sm *StateMachine) ValidateAndStartAuthorizing(ctx context.Context, reqID types.SignRequestID) (*TransitionResult, error)
ValidateAndStartAuthorizing transitions from pending to authorizing
type TransitionResult ¶
type TransitionResult struct {
PreviousStatus types.SignRequestStatus
NewStatus types.SignRequestStatus
Reason string
}
TransitionResult contains the result of a state transition
Click to show internal directories.
Click to hide internal directories.