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  }