Add default customer id
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import "errors"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@@ -13,8 +13,8 @@ type NKodeHandler struct {
|
||||
|
||||
func (h *NKodeHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
switch r.URL.Path {
|
||||
case api.CreateNewCustomer:
|
||||
h.CreateNewCustomerHandler(w, r)
|
||||
//case api.CreateNewCustomer:
|
||||
// h.CreateNewCustomerHandler(w, r)
|
||||
case api.GenerateSignupInterface:
|
||||
h.GenerateSignupInterfaceHandler(w, r)
|
||||
case api.SetNKode:
|
||||
@@ -46,7 +46,7 @@ func (h *NKodeHandler) CreateNewCustomerHandler(w http.ResponseWriter, r *http.R
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
customerId, err := h.Api.CreateNewCustomer(customerPost.NKodePolicy)
|
||||
customerId, err := h.Api.CreateNewCustomer(customerPost.NKodePolicy, nil)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
@@ -84,7 +84,17 @@ func (h *NKodeHandler) GenerateSignupInterfaceHandler(w http.ResponseWriter, r *
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
resp, err := h.Api.GenerateSignupInterface(signupPost.CustomerId, KeypadDefault)
|
||||
kp := KeypadDimension{
|
||||
AttrsPerKey: signupPost.AttrsPerKey,
|
||||
NumbOfKeys: signupPost.NumbOfKeys,
|
||||
}
|
||||
err = kp.IsValidKeypadDimension()
|
||||
if err != nil {
|
||||
keypadSizeOutOfRange(w)
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
resp, err := h.Api.GenerateSignupInterface(signupPost.CustomerId, kp)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
@@ -270,3 +280,8 @@ func methodNotAllowed(w http.ResponseWriter) {
|
||||
w.WriteHeader(http.StatusMethodNotAllowed)
|
||||
w.Write([]byte("405 method not allowed"))
|
||||
}
|
||||
|
||||
func keypadSizeOutOfRange(w http.ResponseWriter) {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write([]byte("invalid keypad dimensions"))
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"github.com/google/uuid"
|
||||
@@ -13,7 +13,9 @@ type NewCustomerPost struct {
|
||||
}
|
||||
|
||||
type GenerateSignupInterfacePost struct {
|
||||
CustomerId CustomerId `json:"customer_id"`
|
||||
CustomerId CustomerId `json:"customer_id"`
|
||||
AttrsPerKey int `json:"attrs_per_key"`
|
||||
NumbOfKeys int `json:"numb_of_keys"`
|
||||
}
|
||||
|
||||
type SetNKodePost struct {
|
||||
@@ -66,7 +68,7 @@ type Username string
|
||||
type IdxInterface []int
|
||||
|
||||
type NKodeAPIInterface interface {
|
||||
CreateNewCustomer(NKodePolicy) (*CustomerId, error)
|
||||
CreateNewCustomer(NKodePolicy, *CustomerId) (*CustomerId, error)
|
||||
GenerateSignupInterface(CustomerId, KeypadDimension) (*GenerateSignupInterfaceResp, error)
|
||||
SetNKode(Username, CustomerId, SessionId, KeySelection) (IdxInterface, error)
|
||||
ConfirmNKode(CustomerId, SessionId, KeySelection) error
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"go-nkode/util"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package m
|
||||
package model
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
@@ -14,24 +14,24 @@ func TestCustomer(t *testing.T) {
|
||||
|
||||
func testNewCustomerAttributes(t *testing.T) {
|
||||
// keypad := m.KeypadDimension{AttrsPerKey: 10, NumbOfKeys: 5}
|
||||
_, nil := m.NewCustomerAttributes()
|
||||
_, nil := model.NewCustomerAttributes()
|
||||
assert.NoError(t, nil)
|
||||
}
|
||||
|
||||
func testCustomerValidKeyEntry(t *testing.T) {
|
||||
kp := m.KeypadDimension{AttrsPerKey: 10, NumbOfKeys: 9}
|
||||
nkodePolicy := m.NewDefaultNKodePolicy()
|
||||
customer, err := m.NewCustomer(nkodePolicy)
|
||||
kp := model.KeypadDimension{AttrsPerKey: 10, NumbOfKeys: 9}
|
||||
nkodePolicy := model.NewDefaultNKodePolicy()
|
||||
customer, err := model.NewCustomer(nkodePolicy)
|
||||
assert.NoError(t, err)
|
||||
newUserInterface, err := m.NewUserInterface(&kp)
|
||||
newUserInterface, err := model.NewUserInterface(&kp)
|
||||
assert.NoError(t, err)
|
||||
username := m.Username("testing123")
|
||||
username := model.Username("testing123")
|
||||
passcodeIdx := []int{0, 1, 2, 3}
|
||||
user, err := NewUser(*customer, username, passcodeIdx, *newUserInterface, kp)
|
||||
assert.NoError(t, err)
|
||||
userLoginInterface, err := user.GetLoginInterface()
|
||||
assert.NoError(t, err)
|
||||
selectedKeys, err := m.SelectKeyByAttrIdx(userLoginInterface, passcodeIdx, kp)
|
||||
selectedKeys, err := model.SelectKeyByAttrIdx(userLoginInterface, passcodeIdx, kp)
|
||||
assert.NoError(t, err)
|
||||
validatedPasscode, err := ValidKeyEntry(*user, *customer, selectedKeys)
|
||||
assert.NoError(t, err)
|
||||
@@ -42,13 +42,13 @@ func testCustomerValidKeyEntry(t *testing.T) {
|
||||
}
|
||||
|
||||
func testCustomerIsValidNKode(t *testing.T) {
|
||||
kp := m.KeypadDimension{AttrsPerKey: 10, NumbOfKeys: 7}
|
||||
nkodePolicy := m.NewDefaultNKodePolicy()
|
||||
customer, err := m.NewCustomer(nkodePolicy)
|
||||
kp := model.KeypadDimension{AttrsPerKey: 10, NumbOfKeys: 7}
|
||||
nkodePolicy := model.NewDefaultNKodePolicy()
|
||||
customer, err := model.NewCustomer(nkodePolicy)
|
||||
assert.NoError(t, err)
|
||||
newUserInterface, err := m.NewUserInterface(&kp)
|
||||
newUserInterface, err := model.NewUserInterface(&kp)
|
||||
assert.NoError(t, err)
|
||||
username := m.Username("testing123")
|
||||
username := model.Username("testing123")
|
||||
passcodeIdx := []int{0, 1, 2, 3}
|
||||
user, err := NewUser(*customer, username, passcodeIdx, *newUserInterface, kp)
|
||||
assert.NoError(t, err)
|
||||
|
||||
@@ -5,11 +5,11 @@ import (
|
||||
)
|
||||
|
||||
type DbAccessor interface {
|
||||
GetCustomer(m.CustomerId) (*m.Customer, error)
|
||||
GetUser(m.Username, m.CustomerId) (*m.User, error)
|
||||
WriteNewCustomer(m.Customer) error
|
||||
WriteNewUser(m.User) error
|
||||
UpdateUserInterface(m.UserId, m.UserInterface) error
|
||||
Renew(m.CustomerId) error
|
||||
RefreshUser(m.User, []int, m.CustomerAttributes) error
|
||||
GetCustomer(model.CustomerId) (*model.Customer, error)
|
||||
GetUser(model.Username, model.CustomerId) (*model.User, error)
|
||||
WriteNewCustomer(model.Customer) error
|
||||
WriteNewUser(model.User) error
|
||||
UpdateUserInterface(model.UserId, model.UserInterface) error
|
||||
Renew(model.CustomerId) error
|
||||
RefreshUser(model.User, []int, model.CustomerAttributes) error
|
||||
}
|
||||
|
||||
@@ -18,8 +18,11 @@ func NewNKodeAPI(db DbAccessor) NKodeAPI {
|
||||
}
|
||||
}
|
||||
|
||||
func (n *NKodeAPI) CreateNewCustomer(nkodePolicy m.NKodePolicy) (*m.CustomerId, error) {
|
||||
func (n *NKodeAPI) CreateNewCustomer(nkodePolicy m.NKodePolicy, id *m.CustomerId) (*m.CustomerId, error) {
|
||||
newCustomer, err := m.NewCustomer(nkodePolicy)
|
||||
if id != nil {
|
||||
newCustomer.Id = *id
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ func testNKodeAPI(t *testing.T, db DbAccessor) {
|
||||
nkodePolicy := m.NewDefaultNKodePolicy()
|
||||
keypadSize := m.KeypadDimension{AttrsPerKey: 10, NumbOfKeys: 8}
|
||||
nkodeApi := NewNKodeAPI(db)
|
||||
customerId, err := nkodeApi.CreateNewCustomer(nkodePolicy)
|
||||
customerId, err := nkodeApi.CreateNewCustomer(nkodePolicy, nil)
|
||||
assert.NoError(t, err)
|
||||
signupResponse, err := nkodeApi.GenerateSignupInterface(*customerId, keypadSize)
|
||||
assert.NoError(t, err)
|
||||
|
||||
Reference in New Issue
Block a user