diff --git a/backend/cmd/server/main.go b/backend/cmd/server/main.go
index 486acf4..2a5c6b4 100644
--- a/backend/cmd/server/main.go
+++ b/backend/cmd/server/main.go
@@ -53,6 +53,9 @@ func main() {
api.GET("/players", func(c *gin.Context) {
player.GetPlayers(c, db.GetDB())
})
+ api.GET("/players/:id", func(c *gin.Context) {
+ player.GetPlayer(c, db.GetDB(), c.Param("id"))
+ })
api.POST("/players", func(c *gin.Context) {
player.CreatePlayer(c, db.GetDB())
})
diff --git a/backend/internal/player/handler.go b/backend/internal/player/handler.go
index 5364b71..5ac189f 100644
--- a/backend/internal/player/handler.go
+++ b/backend/internal/player/handler.go
@@ -53,7 +53,7 @@ func CreatePlayer(c *gin.Context, db *sql.DB) {
common.RespondError(c, http.StatusInternalServerError, "Failed to create player")
return
}
- AddRoleToPlayer(db, newPlayer.ID, "player")
+ err = AddRoleToPlayer(db, newPlayer.ID, "player")
if err != nil {
log.Printf("Error adding role to player: %v", err)
common.RespondError(c, http.StatusInternalServerError, "Failed to assign role to player")
@@ -65,7 +65,8 @@ func CreatePlayer(c *gin.Context, db *sql.DB) {
common.RespondCreated(c, newPlayer)
}
-func GetPlayer(c *gin.Context, db *sql.DB) {
+func GetPlayer(c *gin.Context, db *sql.DB, id string) {
+ log.Println("GetPlayer called with ID:", id)
playerID := c.Param("id")
if playerID == "" {
common.RespondError(c, http.StatusBadRequest, "Player ID is required")
@@ -84,10 +85,16 @@ func GetPlayer(c *gin.Context, db *sql.DB) {
common.RespondError(c, http.StatusNotFound, "Player not found")
return
}
-
- log.Printf("User %s (%s) requested player: %s", c.GetString("userId"), c.GetString("email"), player.Name)
-
+ role, err := GetPlayerRole(db, player.ID)
+ if err != nil {
+ log.Printf("Error retrieving role for player ID %s: %v", player.ID, err)
+ common.RespondError(c, http.StatusInternalServerError, "Failed to retrieve player role")
+ return
+ }
+ player.Role = role
+ log.Printf(player.ID, player.Name, player.Email, player.Role)
c.JSON(http.StatusOK, player)
+
}
func UpdatePlayer(c *gin.Context, db *sql.DB) {
diff --git a/backend/internal/player/model.go b/backend/internal/player/model.go
index 2f04d05..661aaa2 100644
--- a/backend/internal/player/model.go
+++ b/backend/internal/player/model.go
@@ -134,9 +134,9 @@ func savePlayer(db *sql.DB, player Player) error {
log.Printf("Saving player: ID=%v, Name=%v, Email=%v", player.ID, player.Name, player.Email)
- stmt := "INSERT INTO public.players (id, name, email) VALUES ($1, $2, $3)"
+ stmt := "INSERT INTO public.players (id, name, email,password_hash) VALUES ($1, $2, $3,$4)"
log.Printf("Generated SQL statement: %s", stmt)
- _, err := db.Exec(stmt, player.ID, player.Name, player.Email)
+ _, err := db.Exec(stmt, player.ID, player.Name, player.Email, player.Password)
if err != nil {
log.Printf("Error saving player to database: %v", err)
@@ -202,7 +202,7 @@ func GetAllPlayers(db *sql.DB) ([]Player, error) {
func GetPlayerByID(db *sql.DB, id string) (Player, error) {
var player Player
- err := db.QueryRow("SELECT id, name, email FROM players WHERE id = $1", id).Scan(&player.ID, &player.Name, &player.Email, &player.Role)
+ err := db.QueryRow("SELECT id, name, email FROM players WHERE id = $1", id).Scan(&player.ID, &player.Name, &player.Email)
if err != nil {
log.Printf("Error retrieving player by ID %s: %v", id, err)
return Player{}, err
diff --git a/backend/main b/backend/main
new file mode 100755
index 0000000..3c5bcc5
Binary files /dev/null and b/backend/main differ
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 9d37ea9..46fbafe 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -7,6 +7,9 @@ import TournamentDetails from './pages/TournamentDetails';
import Players from './pages/Players';
import Navigation from './pages/Navigation';
import TeamManagement from './pages/Teams';
+import ViewEditPlayer from './pages/ViewEditPlayer';
+import Tournaments from './pages/Tournaments';
+import NewTournament from './pages/NewTournament';
function App() {
@@ -17,12 +20,16 @@ function App() {
} /> {/* Öffentlich */}
} />
-
+ } />
{/* Geschützte Routen */}
} />
+ } />
+
} />
- } />
+ } />
+ } />
+
diff --git a/frontend/src/pages/Dashboard.tsx b/frontend/src/pages/Dashboard.tsx
index 11558ca..572fbac 100644
--- a/frontend/src/pages/Dashboard.tsx
+++ b/frontend/src/pages/Dashboard.tsx
@@ -22,12 +22,13 @@ export default function Dashboard() {
return (
+
Turniere
{error &&
{error}
}
{tournaments.map(t => (
-
+
{t.name}
{t.teams.length} / {t.maxParticipants} Teilnehmer
Ort: {t.location}
diff --git a/frontend/src/pages/Navigation.tsx b/frontend/src/pages/Navigation.tsx
index 0a4fa74..0126bdb 100644
--- a/frontend/src/pages/Navigation.tsx
+++ b/frontend/src/pages/Navigation.tsx
@@ -8,6 +8,8 @@ export default function Navigation() {