@@ -25,29 +25,31 @@ const (
2525type (
2626 Strategy interface {
2727 VerificationStrategyID () string
28- IsPrimary () bool
2928 NodeGroup () node.UiNodeGroup
3029 PopulateVerificationMethod (* http.Request , * Flow ) error
3130 Verify (w http.ResponseWriter , r * http.Request , f * Flow ) (err error )
31+ }
32+ PrimaryStrategy interface {
33+ Strategy
3234 SendVerificationCode (context.Context , * Flow , * identity.Identity , * identity.VerifiableAddress ) error
3335 }
3436 Strategies []Strategy
3537 StrategyProvider interface {
3638 VerificationStrategies (ctx context.Context ) Strategies
3739 AllVerificationStrategies () Strategies
38- GetActiveVerificationStrategies (context.Context ) (active Strategies , primary Strategy , err error )
40+ GetActiveVerificationStrategies (context.Context ) (active Strategies , primary PrimaryStrategy , err error )
3941 }
4042)
4143
42- func (s Strategies ) ActiveStrategies (id string ) (active Strategies , primary Strategy , err error ) {
44+ func (s Strategies ) ActiveStrategies (id string ) (active Strategies , primary PrimaryStrategy , err error ) {
4345 ids := make ([]string , len (s ))
4446 activeStrategies := Strategies {}
4547 for k , ss := range s {
4648 ids [k ] = ss .VerificationStrategyID ()
47- if ss .VerificationStrategyID () == id || ! ss . IsPrimary () {
49+ if ps , isPrimary := ss .( PrimaryStrategy ); ss . VerificationStrategyID () == id || ! isPrimary {
4850 activeStrategies = append (activeStrategies , ss )
49- if ss . IsPrimary () {
50- primary = ss
51+ if isPrimary {
52+ primary = ps
5153 }
5254 }
5355 }
0 commit comments