refactor errors

This commit is contained in:
2024-10-14 13:29:05 -05:00
parent 1e33a81a2c
commit 39d4a1e7f0
20 changed files with 398 additions and 444 deletions

View File

@@ -1,12 +1,11 @@
package core
import (
"errors"
"fmt"
"github.com/google/uuid"
"go-nkode/hashset"
py "go-nkode/py-builtin"
"go-nkode/util"
"log"
)
type UserSignSession struct {
@@ -52,27 +51,33 @@ func (s *UserSignSession) DeducePasscode(confirmKeyEntry KeySelection) ([]int, e
})
if !validEntry {
return nil, errors.New(fmt.Sprintf("Invalid Key entry. One or more key index: %#v, not in range 0-%d", confirmKeyEntry, s.Kp.NumbOfKeys))
log.Printf("Invalid Key entry. One or more key index: %#v, not in range 0-%d", confirmKeyEntry, s.Kp.NumbOfKeys)
return nil, ErrKeyIndexOutOfRange
}
if s.SetIdxInterface == nil {
return nil, errors.New("signup session set interface is nil")
log.Print("signup session set interface is nil")
return nil, ErrIncompleteUserSignupSession
}
if s.ConfirmIdxInterface == nil {
return nil, errors.New("signup session confirm interface is nil")
log.Print("signup session confirm interface is nil")
return nil, ErrIncompleteUserSignupSession
}
if s.SetKeySelection == nil {
return nil, errors.New("signup session set key entry is nil")
log.Print("signup session set key entry is nil")
return nil, ErrIncompleteUserSignupSession
}
if s.UserEmail == "" {
return nil, errors.New("signup session username is nil")
log.Print("signup session username is nil")
return nil, ErrIncompleteUserSignupSession
}
if len(confirmKeyEntry) != len(s.SetKeySelection) {
return nil, errors.New(fmt.Sprintf("confirm and set key entry lenght mismatch %d != %d", len(confirmKeyEntry), len(s.SetKeySelection)))
log.Printf("confirm and set key entry length mismatch %d != %d", len(confirmKeyEntry), len(s.SetKeySelection))
return nil, ErrSetConfirmSignupMismatch
}
passcodeLen := len(confirmKeyEntry)
@@ -88,10 +93,12 @@ func (s *UserSignSession) DeducePasscode(confirmKeyEntry KeySelection) ([]int, e
confirmKey := hashset.NewSetFromSlice[int](confirmKeyVals[idx])
intersection := setKey.Intersect(confirmKey)
if intersection.Size() < 1 {
return nil, errors.New(fmt.Sprintf("set and confirm do not intersect at index %d", idx))
log.Printf("set and confirm do not intersect at index %d", idx)
return nil, ErrSetConfirmSignupMismatch
}
if intersection.Size() > 1 {
return nil, errors.New(fmt.Sprintf("set and confirm intersect at more than one point at index %d", idx))
log.Printf("set and confirm intersect at more than one point at index %d", idx)
return nil, ErrSetConfirmSignupMismatch
}
intersectionSlice := intersection.ToSlice()
passcode[idx] = intersectionSlice[0]
@@ -104,7 +111,8 @@ func (s *UserSignSession) SetUserNKode(keySelection KeySelection) (IdxInterface,
return 0 <= i && i < s.Kp.NumbOfKeys
})
if !validKeySelection {
return nil, errors.New(fmt.Sprintf("one or key selection is out of range 0-%d", s.Kp.NumbOfKeys-1))
log.Printf("one or key selection is out of range 0-%d", s.Kp.NumbOfKeys-1)
return nil, ErrKeyIndexOutOfRange
}
s.SetKeySelection = keySelection
@@ -134,7 +142,7 @@ func (s *UserSignSession) getSelectedKeyVals(keySelections KeySelection, userInt
func signupInterface(baseUserInterface UserInterface, kp KeypadDimension) (*UserInterface, error) {
if kp.IsDispersable() {
return nil, errors.New("keypad is dispersable, can't use signupInterface")
return nil, ErrKeypadIsNotDispersible
}
err := baseUserInterface.RandomShuffle()
if err != nil {