split sign and reset
This commit is contained in:
@@ -29,7 +29,7 @@ func (h *NkodeHandler) RegisterRoutes(r *gin.Engine) {
|
||||
r.Group("/v1/nkode")
|
||||
{
|
||||
r.POST("/create-new-customer", h.CreateNewCustomerHandler)
|
||||
r.POST("/generate-signup-reset-interface", h.SignupResetHandler)
|
||||
r.POST("/signup", h.SignupHandler)
|
||||
r.POST("/set-nkode", h.SetNKodeHandler)
|
||||
r.POST("/confirm-nkode", h.ConfirmNKodeHandler)
|
||||
r.POST("/get-login-interface", h.GetLoginInterfaceHandler)
|
||||
@@ -37,8 +37,9 @@ func (h *NkodeHandler) RegisterRoutes(r *gin.Engine) {
|
||||
r.POST("/renew-attributes", h.RenewAttributesHandler)
|
||||
r.POST("/random-svg-interface", h.RandomSvgInterfaceHandler)
|
||||
r.POST("/refresh-token", h.RefreshTokenHandler)
|
||||
r.POST("/reset-nkode", h.ResetNKodeHandler)
|
||||
r.POST("/forgot-nkode", h.ForgotNKodeHandler)
|
||||
r.POST("/signout", h.SignoutHandler)
|
||||
r.POST("/reset", h.ResetHandler)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,12 +56,12 @@ func (h *NkodeHandler) CreateNewCustomerHandler(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
h.Logger.Println("create new customer")
|
||||
c.JSON(200, gin.H{"customer_id": customerId})
|
||||
c.JSON(200, gin.H{"customer_id": entities.CustomerIdToString(*customerId)})
|
||||
}
|
||||
|
||||
func (h *NkodeHandler) SignupResetHandler(c *gin.Context) {
|
||||
func (h *NkodeHandler) SignupHandler(c *gin.Context) {
|
||||
h.Logger.Println("generate signup reset interface")
|
||||
var postBody models.SignupRestPostBody
|
||||
var postBody models.SignupPostBody
|
||||
if err := c.ShouldBind(&postBody); err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
@@ -86,7 +87,8 @@ func (h *NkodeHandler) SignupResetHandler(c *gin.Context) {
|
||||
c.String(400, malformedUserEmail)
|
||||
return
|
||||
}
|
||||
resp, err := h.API.GenerateSignupResetInterface(userEmail, entities.CustomerId(customerId), kp, postBody.Reset)
|
||||
|
||||
resp, err := h.API.GenerateSignupResetInterface(userEmail, entities.CustomerId(customerId), kp, false)
|
||||
if err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
@@ -98,7 +100,7 @@ func (h *NkodeHandler) SignupResetHandler(c *gin.Context) {
|
||||
func (h *NkodeHandler) SetNKodeHandler(c *gin.Context) {
|
||||
h.Logger.Println("set nkode")
|
||||
var postBody models.SetNKodePost
|
||||
if err := c.ShouldBind(&postBody); err != nil {
|
||||
if err := c.ShouldBindJSON(&postBody); err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
}
|
||||
@@ -125,7 +127,7 @@ func (h *NkodeHandler) SetNKodeHandler(c *gin.Context) {
|
||||
func (h *NkodeHandler) ConfirmNKodeHandler(c *gin.Context) {
|
||||
h.Logger.Println("confirm nkode")
|
||||
var postBody models.ConfirmNKodePost
|
||||
if err := c.ShouldBind(&postBody); err != nil {
|
||||
if err := c.ShouldBindJSON(&postBody); err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
}
|
||||
@@ -177,7 +179,7 @@ func (h *NkodeHandler) LoginHandler(c *gin.Context) {
|
||||
h.Logger.Println("login")
|
||||
|
||||
var loginPost models.LoginPost
|
||||
if err := c.ShouldBind(&loginPost); err != nil {
|
||||
if err := c.ShouldBindJSON(&loginPost); err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
}
|
||||
@@ -259,25 +261,25 @@ func (h *NkodeHandler) RefreshTokenHandler(c *gin.Context) {
|
||||
c.JSON(200, gin.H{"access_token": accessToken})
|
||||
}
|
||||
|
||||
func (h *NkodeHandler) ResetNKodeHandler(c *gin.Context) {
|
||||
h.Logger.Println("reset nkode")
|
||||
var resetNKodePost models.ResetNKodePost
|
||||
if err := c.ShouldBind(&resetNKodePost); err != nil {
|
||||
func (h *NkodeHandler) ForgotNKodeHandler(c *gin.Context) {
|
||||
h.Logger.Println("forgot nkode")
|
||||
var forgotNKodePost models.ForgotNKodePost
|
||||
if err := c.ShouldBind(&forgotNKodePost); err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
}
|
||||
customerId, err := uuid.Parse(resetNKodePost.CustomerId)
|
||||
customerId, err := uuid.Parse(forgotNKodePost.CustomerId)
|
||||
if err != nil {
|
||||
c.String(400, malformedCustomerId)
|
||||
return
|
||||
}
|
||||
userEmail, err := entities.ParseEmail(resetNKodePost.UserEmail)
|
||||
userEmail, err := entities.ParseEmail(forgotNKodePost.UserEmail)
|
||||
if err != nil {
|
||||
c.String(400, malformedUserEmail)
|
||||
return
|
||||
}
|
||||
|
||||
if err := h.API.ResetNKode(userEmail, entities.CustomerId(customerId)); err != nil {
|
||||
if err := h.API.ForgotNKode(userEmail, entities.CustomerId(customerId)); err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
}
|
||||
@@ -313,6 +315,59 @@ func (h *NkodeHandler) SignoutHandler(c *gin.Context) {
|
||||
c.Status(200)
|
||||
}
|
||||
|
||||
func (h *NkodeHandler) ResetHandler(c *gin.Context) {
|
||||
h.Logger.Println("reset")
|
||||
|
||||
token, err := getBearerToken(c)
|
||||
if err != nil {
|
||||
c.String(403, "forbidden")
|
||||
return
|
||||
}
|
||||
resetClaims, err := security.ParseRestNKodeToken(token)
|
||||
if err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
}
|
||||
var postBody models.SignupPostBody
|
||||
if err = c.ShouldBind(&postBody); err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
}
|
||||
customerId, err := uuid.Parse(postBody.CustomerId)
|
||||
if err != nil {
|
||||
c.String(400, malformedCustomerId)
|
||||
return
|
||||
}
|
||||
userEmail, err := entities.ParseEmail(postBody.UserEmail)
|
||||
if err != nil {
|
||||
c.String(400, malformedUserEmail)
|
||||
return
|
||||
}
|
||||
if postBody.UserEmail != resetClaims.Subject ||
|
||||
postBody.CustomerId != resetClaims.Issuer {
|
||||
c.String(403, "forbidden")
|
||||
return
|
||||
}
|
||||
|
||||
kp := entities.KeypadDimension{
|
||||
AttrsPerKey: postBody.AttrsPerKey,
|
||||
NumbOfKeys: postBody.NumbOfKeys,
|
||||
}
|
||||
|
||||
if err := kp.IsValidKeypadDimension(); err != nil {
|
||||
c.String(400, invalidKeypadDimensions)
|
||||
return
|
||||
}
|
||||
resp, err := h.API.GenerateSignupResetInterface(userEmail, entities.CustomerId(customerId), kp, true)
|
||||
if err != nil {
|
||||
handleError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(200, resp)
|
||||
|
||||
}
|
||||
|
||||
func handleError(c *gin.Context, err error) {
|
||||
log.Print("handling error: ", err)
|
||||
statusCode, _ := config.HttpErrMap[err]
|
||||
|
||||
Reference in New Issue
Block a user