implement gin nkode api

This commit is contained in:
2025-01-27 02:54:35 -06:00
parent 44bede14e4
commit 597532bf26
7 changed files with 530 additions and 11 deletions

View File

@@ -33,11 +33,8 @@ func NewNKodeAPI(repo repository.CustomerUserRepository, queue *email.Queue) NKo
}
}
func (n *NKodeAPI) CreateNewCustomer(nkodePolicy entities.NKodePolicy, id *entities.CustomerId) (*entities.CustomerId, error) {
func (n *NKodeAPI) CreateNewCustomer(nkodePolicy entities.NKodePolicy) (*entities.CustomerId, error) {
newCustomer, err := entities.NewCustomer(nkodePolicy)
if id != nil {
newCustomer.Id = *id
}
if err != nil {
return nil, err
}
@@ -49,6 +46,18 @@ func (n *NKodeAPI) CreateNewCustomer(nkodePolicy entities.NKodePolicy, id *entit
return &newCustomer.Id, nil
}
func (n *NKodeAPI) CreateCustomerWithID(id entities.CustomerId, nkodePolicy entities.NKodePolicy) error {
newCustomer, err := entities.NewCustomer(nkodePolicy)
if err != nil {
return err
}
newCustomer.Id = id
if err = n.repo.CreateCustomer(*newCustomer); err != nil {
return err
}
return nil
}
func (n *NKodeAPI) GenerateSignupResetInterface(userEmail entities.UserEmail, customerId entities.CustomerId, kp entities.KeypadDimension, reset bool) (*entities.SignupResetInterface, error) {
user, err := n.repo.GetUser(userEmail, customerId)
if err != nil {
@@ -265,3 +274,18 @@ func (n *NKodeAPI) ResetNKode(userEmail entities.UserEmail, customerId entities.
n.emailQueue.AddEmail(email)
return nil
}
func (n *NKodeAPI) Signout(userEmail entities.UserEmail, customerId entities.CustomerId) error {
user, err := n.repo.GetUser(userEmail, customerId)
if err != nil {
return err
}
if user == nil {
log.Printf("user %s for customer %s dne", userEmail, customerId)
return config.ErrUserForCustomerDNE
}
if err = n.repo.UpdateUserRefreshToken(user.Id, ""); err != nil {
return err
}
return nil
}

View File

@@ -47,7 +47,7 @@ func testNKodeAPI(t *testing.T, db repository.CustomerUserRepository) {
nkodePolicy := entities.NewDefaultNKodePolicy()
keypadSize := entities.KeypadDimension{AttrsPerKey: attrsPerKey, NumbOfKeys: numbOfKeys}
nkodeApi := NewNKodeAPI(db, queue)
customerId, err := nkodeApi.CreateNewCustomer(nkodePolicy, nil)
customerId, err := nkodeApi.CreateNewCustomer(nkodePolicy)
assert.NoError(t, err)
signupResponse, err := nkodeApi.GenerateSignupResetInterface(userEmail, *customerId, keypadSize, false)
assert.NoError(t, err)