add cors; add username to signup interface
This commit is contained in:
@@ -2,6 +2,7 @@ package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"go-nkode/core/api"
|
||||
"log"
|
||||
"net/http"
|
||||
@@ -13,8 +14,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:
|
||||
@@ -43,13 +44,13 @@ func (h *NKodeHandler) CreateNewCustomerHandler(w http.ResponseWriter, r *http.R
|
||||
err := decodeJson(w, r, &customerPost)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
customerId, err := h.Api.CreateNewCustomer(customerPost.NKodePolicy, nil)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
respBody := CreateNewCustomerResp{
|
||||
@@ -58,13 +59,13 @@ func (h *NKodeHandler) CreateNewCustomerHandler(w http.ResponseWriter, r *http.R
|
||||
respBytes, err := json.Marshal(respBody)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
_, err = w.Write(respBytes)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -81,7 +82,7 @@ func (h *NKodeHandler) GenerateSignupInterfaceHandler(w http.ResponseWriter, r *
|
||||
err := decodeJson(w, r, &signupPost)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
kp := KeypadDimension{
|
||||
@@ -91,26 +92,26 @@ func (h *NKodeHandler) GenerateSignupInterfaceHandler(w http.ResponseWriter, r *
|
||||
err = kp.IsValidKeypadDimension()
|
||||
if err != nil {
|
||||
keypadSizeOutOfRange(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
resp, err := h.Api.GenerateSignupInterface(signupPost.CustomerId, kp)
|
||||
resp, err := h.Api.GenerateSignupInterface(signupPost.Username, signupPost.CustomerId, kp)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
respBytes, err := json.Marshal(resp)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
_, err = w.Write(respBytes)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -126,13 +127,13 @@ func (h *NKodeHandler) SetNKodeHandler(w http.ResponseWriter, r *http.Request) {
|
||||
err := decodeJson(w, r, &setNKodePost)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
confirmInterface, err := h.Api.SetNKode(setNKodePost.Username, setNKodePost.CustomerId, setNKodePost.SessionId, setNKodePost.KeySelection)
|
||||
confirmInterface, err := h.Api.SetNKode(setNKodePost.CustomerId, setNKodePost.SessionId, setNKodePost.KeySelection)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
respBody := SetNKodeResp{UserInterface: confirmInterface}
|
||||
@@ -140,14 +141,14 @@ func (h *NKodeHandler) SetNKodeHandler(w http.ResponseWriter, r *http.Request) {
|
||||
respBytes, err := json.Marshal(respBody)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
_, err = w.Write(respBytes)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -164,13 +165,13 @@ func (h *NKodeHandler) ConfirmNKodeHandler(w http.ResponseWriter, r *http.Reques
|
||||
err := decodeJson(w, r, &confirmNKodePost)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
err = h.Api.ConfirmNKode(confirmNKodePost.CustomerId, confirmNKodePost.SessionId, confirmNKodePost.KeySelection)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -187,13 +188,13 @@ func (h *NKodeHandler) GetLoginInterfaceHandler(w http.ResponseWriter, r *http.R
|
||||
err := decodeJson(w, r, &loginInterfacePost)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
loginInterface, err := h.Api.GetLoginInterface(loginInterfacePost.Username, loginInterfacePost.CustomerId)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -201,13 +202,13 @@ func (h *NKodeHandler) GetLoginInterfaceHandler(w http.ResponseWriter, r *http.R
|
||||
respBytes, err := json.Marshal(respBody)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
_, err = w.Write(respBytes)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -224,13 +225,13 @@ func (h *NKodeHandler) LoginHandler(w http.ResponseWriter, r *http.Request) {
|
||||
err := decodeJson(w, r, &loginPost)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
err = h.Api.Login(loginPost.CustomerId, loginPost.Username, loginPost.KeySelection)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -247,14 +248,14 @@ func (h *NKodeHandler) RenewAttributesHandler(w http.ResponseWriter, r *http.Req
|
||||
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
err = h.Api.RenewAttributes(renewAttributesPost.CustomerId)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
log.Fatal(err)
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -262,13 +263,16 @@ func (h *NKodeHandler) RenewAttributesHandler(w http.ResponseWriter, r *http.Req
|
||||
}
|
||||
|
||||
func decodeJson(w http.ResponseWriter, r *http.Request, post any) error {
|
||||
if r.Body == nil {
|
||||
invalidJson(w)
|
||||
return errors.New("invalid json")
|
||||
}
|
||||
err := json.NewDecoder(r.Body).Decode(&post)
|
||||
if err != nil {
|
||||
internalServerErrorHandler(w)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
func internalServerErrorHandler(w http.ResponseWriter) {
|
||||
@@ -285,3 +289,8 @@ func keypadSizeOutOfRange(w http.ResponseWriter) {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write([]byte("invalid keypad dimensions"))
|
||||
}
|
||||
|
||||
func invalidJson(w http.ResponseWriter) {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write([]byte("invalid json"))
|
||||
}
|
||||
|
||||
@@ -16,10 +16,10 @@ type GenerateSignupInterfacePost struct {
|
||||
CustomerId CustomerId `json:"customer_id"`
|
||||
AttrsPerKey int `json:"attrs_per_key"`
|
||||
NumbOfKeys int `json:"numb_of_keys"`
|
||||
Username Username `json:"username"`
|
||||
}
|
||||
|
||||
type SetNKodePost struct {
|
||||
Username Username `json:"username"`
|
||||
CustomerId CustomerId `json:"customer_id"`
|
||||
KeySelection KeySelection `json:"key_selection"`
|
||||
SessionId SessionId `json:"session_id"`
|
||||
@@ -69,8 +69,8 @@ type IdxInterface []int
|
||||
|
||||
type NKodeAPIInterface interface {
|
||||
CreateNewCustomer(NKodePolicy, *CustomerId) (*CustomerId, error)
|
||||
GenerateSignupInterface(CustomerId, KeypadDimension) (*GenerateSignupInterfaceResp, error)
|
||||
SetNKode(Username, CustomerId, SessionId, KeySelection) (IdxInterface, error)
|
||||
GenerateSignupInterface(Username, CustomerId, KeypadDimension) (*GenerateSignupInterfaceResp, error)
|
||||
SetNKode(CustomerId, SessionId, KeySelection) (IdxInterface, error)
|
||||
ConfirmNKode(CustomerId, SessionId, KeySelection) error
|
||||
GetLoginInterface(Username, CustomerId) (IdxInterface, error)
|
||||
Login(CustomerId, Username, KeySelection) error
|
||||
|
||||
Reference in New Issue
Block a user