flamingo.me/flamingo-commerce/v3@v3.11.0/checkout/domain/placeorder/states/show_html.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 // ShowHTML state 13 ShowHTML struct { 14 paymentService *application.PaymentService 15 validator process.PaymentValidatorFunc 16 } 17 ) 18 19 var _ process.State = ShowHTML{} 20 21 // NewShowHTMLStateData creates new StateData required for this ShowHTML state 22 func NewShowHTMLStateData(html string) process.StateData { 23 return process.StateData(html) 24 } 25 26 // Inject dependencies 27 func (sh *ShowHTML) Inject( 28 paymentService *application.PaymentService, 29 validator process.PaymentValidatorFunc, 30 ) *ShowHTML { 31 sh.paymentService = paymentService 32 sh.validator = validator 33 return sh 34 } 35 36 // Name get state name 37 func (ShowHTML) Name() string { 38 return "ShowHTML" 39 } 40 41 // Run the state operations 42 func (sh ShowHTML) Run(ctx context.Context, p *process.Process) process.RunResult { 43 ctx, span := trace.StartSpan(ctx, "placeorder/state/ShowHTML/Run") 44 defer span.End() 45 46 return sh.validator(ctx, p, sh.paymentService) 47 } 48 49 // Rollback the state operations 50 func (sh ShowHTML) Rollback(ctx context.Context, _ process.RollbackData) error { 51 return nil 52 } 53 54 // IsFinal if state is a final state 55 func (sh ShowHTML) IsFinal() bool { 56 return false 57 }