flamingo.me/flamingo-commerce/v3@v3.11.0/checkout/domain/placeorder/states/validate_payment.go (about) 1 package states 2 3 import ( 4 "context" 5 6 "flamingo.me/flamingo-commerce/v3/checkout/domain/placeorder/process" 7 "flamingo.me/flamingo-commerce/v3/payment/application" 8 "go.opencensus.io/trace" 9 ) 10 11 type ( 12 // ValidatePayment state 13 ValidatePayment struct { 14 paymentService *application.PaymentService 15 validator process.PaymentValidatorFunc 16 } 17 ) 18 19 var _ process.State = ValidatePayment{} 20 21 // Inject dependencies 22 func (v *ValidatePayment) Inject( 23 paymentService *application.PaymentService, 24 validator process.PaymentValidatorFunc, 25 ) *ValidatePayment { 26 v.paymentService = paymentService 27 v.validator = validator 28 29 return v 30 } 31 32 // Name get state name 33 func (ValidatePayment) Name() string { 34 return "ValidatePayment" 35 } 36 37 // Run the state operations 38 func (v ValidatePayment) Run(ctx context.Context, p *process.Process) process.RunResult { 39 ctx, span := trace.StartSpan(ctx, "placeorder/state/ValidatePayment/Run") 40 defer span.End() 41 42 return v.validator(ctx, p, v.paymentService) 43 } 44 45 // Rollback the state operations 46 func (v ValidatePayment) Rollback(ctx context.Context, _ process.RollbackData) error { 47 return nil 48 } 49 50 // IsFinal if state is a final state 51 func (v ValidatePayment) IsFinal() bool { 52 return false 53 }