From 947ff566d10b26c6dfd6c870052f08f6ca5a197b Mon Sep 17 00:00:00 2001 From: Fritz Heiden Date: Thu, 13 Mar 2025 19:09:07 +0100 Subject: [PATCH] refactor: restructure project --- {users => data}/session.go | 2 +- {users => data}/user.go | 2 +- {users => data}/user_database.go | 2 +- main/main.go | 7 ++++--- {users => management}/user_manager.go | 21 +++++++++++---------- server/web_server.go | 2 +- 6 files changed, 19 insertions(+), 17 deletions(-) rename {users => data}/session.go (87%) rename {users => data}/user.go (91%) rename {users => data}/user_database.go (99%) rename {users => management}/user_manager.go (85%) diff --git a/users/session.go b/data/session.go similarity index 87% rename from users/session.go rename to data/session.go index 35a269a..c776617 100644 --- a/users/session.go +++ b/data/session.go @@ -1,4 +1,4 @@ -package users +package data import "time" diff --git a/users/user.go b/data/user.go similarity index 91% rename from users/user.go rename to data/user.go index de00947..62a1570 100644 --- a/users/user.go +++ b/data/user.go @@ -1,4 +1,4 @@ -package users +package data type User struct { ID string `json:"id"` diff --git a/users/user_database.go b/data/user_database.go similarity index 99% rename from users/user_database.go rename to data/user_database.go index 5786fdf..4cd52ac 100644 --- a/users/user_database.go +++ b/data/user_database.go @@ -1,4 +1,4 @@ -package users +package data import ( "database/sql" diff --git a/main/main.go b/main/main.go index cc15e39..53923ee 100644 --- a/main/main.go +++ b/main/main.go @@ -2,8 +2,9 @@ package main import ( "os" + "playback-device-server/data" + "playback-device-server/management" "playback-device-server/server" - "playback-device-server/users" "sync" "github.com/rs/zerolog" @@ -20,7 +21,7 @@ func main() { os.Exit(1) } - userDatabase := users.UserDatabase{} + userDatabase := data.UserDatabase{} userDatabase.SetDirectory(configuration.DatabaseDirectory) err = userDatabase.Initialize() if err != nil { @@ -29,7 +30,7 @@ func main() { } defer userDatabase.Close() - userManager := users.UserManager{} + userManager := management.UserManager{} err = userManager.Initialize(&userDatabase) if err != nil { log.Error().Err(err).Msg("failed to initialize user manager") diff --git a/users/user_manager.go b/management/user_manager.go similarity index 85% rename from users/user_manager.go rename to management/user_manager.go index 735d42f..134b7ac 100644 --- a/users/user_manager.go +++ b/management/user_manager.go @@ -1,9 +1,10 @@ -package users +package management import ( "crypto/rand" "encoding/base64" "fmt" + d "playback-device-server/data" "time" "github.com/rs/zerolog/log" @@ -13,10 +14,10 @@ const DEFAULT_USERNAME = "admin" const MIN_PASSWORD_LENGTH = 6 type UserManager struct { - userDatabase *UserDatabase + userDatabase *d.UserDatabase } -func (um *UserManager) Initialize(userDatabase *UserDatabase) error { +func (um *UserManager) Initialize(userDatabase *d.UserDatabase) error { um.userDatabase = userDatabase exists, error := um.UsernameExists(DEFAULT_USERNAME) @@ -32,7 +33,7 @@ func (um *UserManager) Initialize(userDatabase *UserDatabase) error { log.Info().Str("username", DEFAULT_USERNAME).Str("password", password).Msg("creating default admin user") - user := User{Username: DEFAULT_USERNAME, Password: password, IsAdmin: true} + user := d.User{Username: DEFAULT_USERNAME, Password: password, IsAdmin: true} _, error = um.CreateUser(&user) if error != nil { return error @@ -42,7 +43,7 @@ func (um *UserManager) Initialize(userDatabase *UserDatabase) error { return nil } -func (um *UserManager) CreateUser(user *User) (string, error) { +func (um *UserManager) CreateUser(user *d.User) (string, error) { exists, error := um.UsernameExists(user.Username) if error != nil { return "", error @@ -109,7 +110,7 @@ func (um *UserManager) Login(username, password string) (string, error) { return token, nil } -func (um *UserManager) GetSession(sessionToken string) (*Session, error) { +func (um *UserManager) GetSession(sessionToken string) (*d.Session, error) { session, error := um.userDatabase.GetSession(sessionToken) if error != nil { return nil, error @@ -117,7 +118,7 @@ func (um *UserManager) GetSession(sessionToken string) (*Session, error) { return session, nil } -func (um *UserManager) GetUserById(id string) (*User, error) { +func (um *UserManager) GetUserById(id string) (*d.User, error) { user, error := um.userDatabase.GetUserById(id) if error != nil { return nil, error @@ -125,12 +126,12 @@ func (um *UserManager) GetUserById(id string) (*User, error) { return user, nil } -func (um *UserManager) UpdateUser(user *User) error { +func (um *UserManager) UpdateUser(user *d.User) error { error := um.userDatabase.UpdateUser(user) return error } -func (um *UserManager) UpdatePassword(currentPassword string, newPassword string, user *User) error { +func (um *UserManager) UpdatePassword(currentPassword string, newPassword string, user *d.User) error { correct, error := um.userDatabase.CheckCredentials(user.Username, currentPassword) if error != nil { return error @@ -155,7 +156,7 @@ func (um *UserManager) DeleteSession(token string) error { return nil } -func (um *UserManager) GetUsers() (*[]User, error) { +func (um *UserManager) GetUsers() (*[]d.User, error) { users, error := um.userDatabase.GetUsers() return users, error diff --git a/server/web_server.go b/server/web_server.go index c3c7bde..093b2ac 100644 --- a/server/web_server.go +++ b/server/web_server.go @@ -69,7 +69,7 @@ func (r WebServer) Router() *echo.Echo { return r.router } -func sendError(statusCode int, context echo.Context, message string) { +func SendError(statusCode int, context echo.Context, message string) { log.Info().Msg(message) responseData := struct { Error string `json:"error"`