feat(signup): progress on new signup flow, #2353

This commit is contained in:
Torkel Ödegaard
2015-08-30 18:56:53 +02:00
parent de0f04ec3c
commit 14884d5a2b
7 changed files with 76 additions and 50 deletions

View File

@@ -81,20 +81,41 @@ func SignUpStep2(c *middleware.Context, form dtos.SignUpStep2Form) Response {
return ApiError(500, "Failed to create user", err)
}
user := createUserCmd.Result
// publish signup event
user := &createUserCmd.Result
bus.Publish(&events.SignUpCompleted{
Email: user.Email,
Name: user.NameOrFallback(),
})
// update tempuser
updateTempUserCmd := m.UpdateTempUserStatusCommand{
Code: tempUser.Code,
Status: m.TmpUserCompleted,
}
if err := bus.Dispatch(&updateTempUserCmd); err != nil {
return ApiError(500, "Failed to update temp user", err)
}
// check for pending invites
invitesQuery := m.GetTempUsersQuery{Email: tempUser.Email, Status: m.TmpUserInvitePending}
if err := bus.Dispatch(&invitesQuery); err != nil {
return ApiError(500, "Failed to query database for invites", err)
}
loginUserWithUser(&user, c)
apiResponse := util.DynMap{"message": "User sign up completed succesfully", "code": "redirect-to-landing-page"}
for _, invite := range invitesQuery.Result {
if ok, rsp := applyUserInvite(user, invite, false); !ok {
return rsp
}
apiResponse["code"] = "redirect-to-select-org"
}
loginUserWithUser(user, c)
metrics.M_Api_User_SignUpCompleted.Inc(1)
return Json(200, util.DynMap{"status": "SignUpCreated"})
return Json(200, apiResponse)
}