Skip to content

Commit

Permalink
fix user view (#667)
Browse files Browse the repository at this point in the history
  • Loading branch information
thetechnocrat-dev committed Sep 26, 2023
1 parent acd9686 commit e698db2
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 13 deletions.
14 changes: 7 additions & 7 deletions gateway/handlers/users.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func AddUserHandler(db *gorm.DB) http.HandlerFunc {

var requestData struct {
WalletAddress string `json:"walletAddress"`
Email string `json:"email"`
Username string `json:"username"`
}

if err := utils.ReadRequestBody(r, &requestData); err != nil {
Expand All @@ -31,7 +31,7 @@ func AddUserHandler(db *gorm.DB) http.HandlerFunc {
return
}

fmt.Printf("Received request to create user: WalletAddress: %s, Email: %s,\n", requestData.WalletAddress, requestData.Email)
fmt.Printf("Received request to create user: WalletAddress: %s, Username: %s,\n", requestData.WalletAddress, requestData.Username)

isValidAddress := web3.IsValidEthereumAddress(requestData.WalletAddress)
if !isValidAddress {
Expand All @@ -41,19 +41,19 @@ func AddUserHandler(db *gorm.DB) http.HandlerFunc {
}

var existingUser models.User
if err := db.Where("wallet_address = ? AND email = ?", requestData.WalletAddress, requestData.Email).First(&existingUser).Error; err != nil {
if err := db.Where("wallet_address = ? AND username = ?", requestData.WalletAddress, requestData.Username).First(&existingUser).Error; err != nil {
if err == gorm.ErrRecordNotFound {
// User does not exist, create new user
newUser := models.User{
WalletAddress: requestData.WalletAddress,
Email: requestData.Email,
Username: requestData.Username,
}
if result := db.Create(&newUser); result.Error != nil {
utils.SendJSONError(w, fmt.Sprintf("Error creating user: %v", result.Error), http.StatusInternalServerError)
fmt.Println("Error creating user in database:", result.Error)
return
}
fmt.Printf("Successfully created user with WalletAddress: %s, Email: %s\n", newUser.WalletAddress, newUser.Email)
fmt.Printf("Successfully created user with WalletAddress: %s, Username: %s\n", newUser.WalletAddress, newUser.Username)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusCreated)
json.NewEncoder(w).Encode(newUser)
Expand All @@ -63,8 +63,8 @@ func AddUserHandler(db *gorm.DB) http.HandlerFunc {
fmt.Println("Database error:", err)
}
} else {
// User with given wallet address and email already exists, return that user
fmt.Printf("User already exists with WalletAddress: %s, Email: %s\n", existingUser.WalletAddress, existingUser.Email)
// User with given wallet address and username already exists, return that user
fmt.Printf("User already exists with WalletAddress: %s, Username: %s\n", existingUser.WalletAddress, existingUser.Username)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(existingUser)
Expand Down
8 changes: 2 additions & 6 deletions gateway/models/user.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package models

// gorm supports the use of composite primary keys
// combination of wallet address and email must be unique
// https://gorm.io/docs/composite_primary_key.html

type User struct {
WalletAddress string `gorm:"primaryKey;type:varchar(42);not null" json:"walletAddress"`
Email string `gorm:"primaryKey;not null" json:"email"`
Username string `json:"username"`
WalletAddress string `gorm:"type:varchar(42);not null" json:"walletAddress"`
}

0 comments on commit e698db2

Please sign in to comment.