flamingo.me/flamingo-commerce/v3@v3.11.0/checkout/domain/placeorder/states/show_wallet_payment.go (about) 1 package states 2 3 import ( 4 "context" 5 "encoding/gob" 6 7 "flamingo.me/flamingo-commerce/v3/checkout/domain/placeorder/process" 8 "flamingo.me/flamingo-commerce/v3/payment/application" 9 "flamingo.me/flamingo-commerce/v3/payment/domain" 10 11 "go.opencensus.io/trace" 12 ) 13 14 type ( 15 // ShowWalletPayment state 16 ShowWalletPayment struct { 17 paymentService *application.PaymentService 18 validator process.PaymentValidatorFunc 19 } 20 21 // ShowWalletPaymentData holds details regarding the wallet payment 22 ShowWalletPaymentData domain.WalletDetails 23 ) 24 25 func init() { 26 gob.Register(ShowWalletPaymentData{}) 27 } 28 29 var _ process.State = ShowWalletPayment{} 30 31 // NewShowWalletPaymentStateData creates new StateData with (persisted) Data required for this state 32 func NewShowWalletPaymentStateData(walletDetails ShowWalletPaymentData) process.StateData { 33 return process.StateData(walletDetails) 34 } 35 36 // Inject dependencies 37 func (pr *ShowWalletPayment) Inject( 38 paymentService *application.PaymentService, 39 validator process.PaymentValidatorFunc, 40 ) *ShowWalletPayment { 41 pr.paymentService = paymentService 42 pr.validator = validator 43 44 return pr 45 } 46 47 // Name get state name 48 func (ShowWalletPayment) Name() string { 49 return "ShowWalletPayment" 50 } 51 52 // Run the state operations 53 func (pr ShowWalletPayment) Run(ctx context.Context, p *process.Process) process.RunResult { 54 ctx, span := trace.StartSpan(ctx, "placeorder/state/ShowWalletPayment/Run") 55 defer span.End() 56 57 return pr.validator(ctx, p, pr.paymentService) 58 } 59 60 // Rollback the state operations 61 func (pr ShowWalletPayment) Rollback(ctx context.Context, _ process.RollbackData) error { 62 return nil 63 } 64 65 // IsFinal if state is a final state 66 func (pr ShowWalletPayment) IsFinal() bool { 67 return false 68 }