Skip to content
This repository was archived by the owner on Jul 20, 2023. It is now read-only.

Commit ab1dafe

Browse files
committed
directly login after registration + comments
1 parent 3063de2 commit ab1dafe

File tree

4 files changed

+28
-20
lines changed

4 files changed

+28
-20
lines changed

profile-service/app/http/controllers/controllers.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ func CreateUserHandler(connection *sql.DB, cnf config.Config) negroni.HandlerFun
4646
util.SendBadRequest(w, err)
4747
return
4848
}
49-
createdUser, _ := db.GetUserByID(connection, createdID)
49+
createdUser, err := db.GetUserByID(connection, createdID)
50+
if err != nil {
51+
util.SendBadRequest(w, err)
52+
return
53+
}
54+
5055
// create JWT object with claims
5156
expiration := time.Now().Add(time.Hour * 24 * 31).Unix()
5257
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
@@ -64,15 +69,15 @@ func CreateUserHandler(connection *sql.DB, cnf config.Config) negroni.HandlerFun
6469
}
6570

6671
type Token struct {
67-
Token string `json:"token"`
68-
ExpiresOn string `json:"expires_on"`
69-
User models.UserResponse `json:"user"`
72+
Token string `json:"token"`
73+
ExpiresOn string `json:"expires_on"`
74+
User *models.UserResponse `json:"user"`
7075
}
7176

7277
util.SendOK(w, &Token{
7378
Token: tokenString,
7479
ExpiresOn: strconv.Itoa(int(expiration)),
75-
User: createdUser,
80+
User: &createdUser,
7681
})
7782

7883
} else {

profile-service/database/db.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,8 @@ func GetUserByID(db *sql.DB, ID int) (models.UserResponse, error) {
5656
var id int
5757
var username string
5858
var createdAt time.Time
59-
var password string
6059
var email string
61-
err = rows.Scan(&id, &username, &createdAt, &password, &email)
60+
err = rows.Scan(&id, &username, &createdAt, &email)
6261
if err != nil {
6362
return models.UserResponse{}, err
6463
}

vote-service/app/http/controllers/controllers.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,17 @@ import (
2323
func CreateHandler(connection *sql.DB, cnf config.Config) negroni.HandlerFunc {
2424
return negroni.HandlerFunc(func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
2525

26+
// Get the tokenstring from the request
2627
var queryToken = r.URL.Query().Get("token")
27-
2828
if len(queryToken) < 1 {
2929
queryToken = r.Header.Get("token")
3030
}
31-
3231
if len(queryToken) < 1 {
33-
w.WriteHeader(http.StatusBadRequest)
34-
w.Write([]byte(string("token is mandatory")))
32+
util.SendErrorMessage(w, "token is mandatory")
3533
return
3634
}
3735

36+
// Parse the tokenstring to a Token object through the jwt parser
3837
secretKey := cnf.SecretKey
3938
tok, err := jwt.Parse(queryToken, func(t *jwt.Token) (interface{}, error) {
4039
return []byte(secretKey), nil
@@ -45,19 +44,18 @@ func CreateHandler(connection *sql.DB, cnf config.Config) negroni.HandlerFunc {
4544
return
4645
}
4746

47+
// Get the user from the token object
4848
claims := tok.Claims.(jwt.MapClaims)
4949
var ID = claims["sub"].(float64) // gets the ID
5050

51-
// 1.parse body
51+
// STEP 1 : parse body
5252
voteCreateObject := &sharedModels.VoteCreateRequest{}
53-
voteCreateObject.UserID = int(ID)
54-
5553
err = util.RequestToJSON(r, voteCreateObject)
5654
if err != nil {
5755
util.SendErrorMessage(w, "bad json")
5856
return
5957
}
60-
58+
voteCreateObject.UserID = int(ID)
6159
if voteCreateObject.Upvote == voteCreateObject.Downvote {
6260
util.SendErrorMessage(w, "can not vote for none or both")
6361
return
@@ -118,6 +116,7 @@ func GetVotesFromAUser(connection *sql.DB, cnf config.Config) negroni.HandlerFun
118116

119117
photos := getPhotos(cnf, photoIDs)
120118

119+
// merge
121120
t := make([]*sharedModels.HasVotedRequest, 0)
122121
g := make([]*sharedModels.VoteCountRequest, 0)
123122
for _, v := range photos {

webserver/webapp/controllers/RegisterController.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,20 @@ app.controller('RegisterController', function ($scope, $window, ApiService, Loca
1111
$scope.successMessages.push("Registration successful");
1212
emptyFields();
1313

14-
LocalStorage.setToken(data.token);
14+
1515

1616
if (data.user) {
1717
//console.info(data.user);
18-
LocalStorage.setUser(data.user);
19-
}
20-
18+
var user = data.user;
19+
if (user.id && user.email && user.username) {
20+
LocalStorage.setToken(data.token);
21+
LocalStorage.setUser(data.user);
2122

22-
$window.location.href = '#/';
23+
$window.location.href = '#/';
24+
return;
25+
}
26+
}
27+
$scope.errorMessages.push("Something went wrong. Please try again.");
2328

2429
}, function (response) {
2530
console.log(response);

0 commit comments

Comments
 (0)