tsk-14: Fix startup crash (#16)

Closes #14

Reviewed-on: phoenix/textsender-auth#16
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
phoenix
2025-11-14 17:35:57 +00:00
committed by phoenix
parent ef39949e77
commit 6f608b757c
8 changed files with 48 additions and 60 deletions
+2 -6
View File
@@ -4,10 +4,11 @@ import (
"fmt"
"net/http"
"git.kundeng.us/phoenix/textsender-models/pkg/token"
"git.kundeng.us/phoenix/textsender-auth/internal/config"
"git.kundeng.us/phoenix/textsender-auth/internal/model"
"git.kundeng.us/phoenix/textsender-auth/internal/utility"
"git.kundeng.us/phoenix/textsender-models/pkg/token"
)
type LoginAccount struct {
@@ -29,11 +30,6 @@ func NewLoginHandler(userStore model.UserStore) *LoginHandler {
}
func (l *LoginHandler) Login(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
var req LoginAccount
if err := ExtractFromRequest(r, &req); err != nil {
http.Error(w, "Invalid JSON: "+err.Error(), http.StatusBadRequest)
+3 -3
View File
@@ -107,8 +107,8 @@ func (m *MockUserStore) UserExists(ctx context.Context, username string) (bool,
_, exists := m.UsersByUsername[username]
if !exists {
return exists, errors.New("User not found")
return exists, nil
} else {
return exists, nil
}
return exists, nil
}
+24 -30
View File
@@ -2,12 +2,13 @@ package handler
import (
"fmt"
"github.com/google/uuid"
"net/http"
"git.kundeng.us/phoenix/textsender-models/pkg/user"
"github.com/google/uuid"
"git.kundeng.us/phoenix/textsender-auth/internal/model"
"git.kundeng.us/phoenix/textsender-auth/internal/utility"
"git.kundeng.us/phoenix/textsender-models/pkg/user"
)
type RegisterUser struct {
@@ -35,12 +36,7 @@ func NewUserHandler(userStore model.UserStore) *UserHandler {
return &UserHandler{UserStore: userStore}
}
func (h *UserHandler) Register(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
func (u *UserHandler) Register(w http.ResponseWriter, r *http.Request) {
var req RegisterUser
err := ExtractFromRequest(r, &req)
if err != nil {
@@ -50,44 +46,42 @@ func (h *UserHandler) Register(w http.ResponseWriter, r *http.Request) {
defer r.Body.Close()
user := user.User{Username: req.Username, Password: req.Password, PhoneNumber: req.PhoneNumber}
var statusCode int
resp := RegisterResponse{}
var resp RegisterResponse
user := user.User{Username: req.Username, Password: req.Password, PhoneNumber: req.PhoneNumber}
fmt.Println("Username:", user.Username)
ctx := r.Context()
exists, err := h.UserStore.UserExists(ctx, user.Username)
if err != nil {
if exists, err := u.UserStore.UserExists(ctx, user.Username); err != nil {
fmt.Printf("Error: %v", err)
statusCode = http.StatusInternalServerError
resp.Message = err.Error()
}
if exists {
// User already exists
statusCode = http.StatusBadRequest
resp.Message = "Failure in creating User"
} else {
hashing := utility.HashMash{Password: user.Password}
hashedPassword, err := hashing.HashPassword()
if err != nil {
statusCode = http.StatusInternalServerError
resp.Message = err.Error()
if exists {
// User already exists
statusCode = http.StatusBadRequest
resp.Message = "Failure in creating User"
} else {
user.Password = hashedPassword
err := h.UserStore.CreateUser(ctx, &user)
if err != nil {
hashing := utility.HashMash{Password: user.Password}
if hashedPassword, err := hashing.HashPassword(); err != nil {
statusCode = http.StatusInternalServerError
resp.Message = err.Error()
} else {
resp.Message = "Successful"
statusCode = http.StatusOK
resp.Data = append(resp.Data, RegisterResponseItem{Id: user.Id, PhoneNumber: user.PhoneNumber, Username: user.Username})
user.Password = hashedPassword
err := u.UserStore.CreateUser(ctx, &user)
if err != nil {
statusCode = http.StatusInternalServerError
resp.Message = err.Error()
} else {
resp.Message = "Successful"
statusCode = http.StatusOK
resp.Data = append(resp.Data, RegisterResponseItem{Id: user.Id, PhoneNumber: user.PhoneNumber, Username: user.Username})
}
}
}
}
RespondWithJson(w, statusCode, &resp)
-10
View File
@@ -1,7 +1,6 @@
package handler
import (
"context"
"encoding/json"
"net/http"
"net/http/httptest"
@@ -10,7 +9,6 @@ import (
"github.com/stretchr/testify/assert"
"git.kundeng.us/phoenix/textsender-auth/internal/db"
"git.kundeng.us/phoenix/textsender-auth/internal/handler/endpoint"
)
@@ -34,11 +32,3 @@ func TestCreateUserWithMock(t *testing.T) {
assert.NotNil(t, response.Data[0].Id, "Id should not be nil")
}
func resetTestDB(t *testing.T) {
t.Helper()
_, err := db.Pool.Exec(context.Background(), "DELETE FROM users")
if err != nil {
t.Fatalf("Failed to reset test database: %v", err)
}
}