refactor: restructure project

This commit is contained in:
Fritz Heiden 2025-03-13 19:09:07 +01:00
parent e845d88b6c
commit 947ff566d1
6 changed files with 19 additions and 17 deletions

View File

@ -1,4 +1,4 @@
package users package data
import "time" import "time"

View File

@ -1,4 +1,4 @@
package users package data
type User struct { type User struct {
ID string `json:"id"` ID string `json:"id"`

View File

@ -1,4 +1,4 @@
package users package data
import ( import (
"database/sql" "database/sql"

View File

@ -2,8 +2,9 @@ package main
import ( import (
"os" "os"
"playback-device-server/data"
"playback-device-server/management"
"playback-device-server/server" "playback-device-server/server"
"playback-device-server/users"
"sync" "sync"
"github.com/rs/zerolog" "github.com/rs/zerolog"
@ -20,7 +21,7 @@ func main() {
os.Exit(1) os.Exit(1)
} }
userDatabase := users.UserDatabase{} userDatabase := data.UserDatabase{}
userDatabase.SetDirectory(configuration.DatabaseDirectory) userDatabase.SetDirectory(configuration.DatabaseDirectory)
err = userDatabase.Initialize() err = userDatabase.Initialize()
if err != nil { if err != nil {
@ -29,7 +30,7 @@ func main() {
} }
defer userDatabase.Close() defer userDatabase.Close()
userManager := users.UserManager{} userManager := management.UserManager{}
err = userManager.Initialize(&userDatabase) err = userManager.Initialize(&userDatabase)
if err != nil { if err != nil {
log.Error().Err(err).Msg("failed to initialize user manager") log.Error().Err(err).Msg("failed to initialize user manager")

View File

@ -1,9 +1,10 @@
package users package management
import ( import (
"crypto/rand" "crypto/rand"
"encoding/base64" "encoding/base64"
"fmt" "fmt"
d "playback-device-server/data"
"time" "time"
"github.com/rs/zerolog/log" "github.com/rs/zerolog/log"
@ -13,10 +14,10 @@ const DEFAULT_USERNAME = "admin"
const MIN_PASSWORD_LENGTH = 6 const MIN_PASSWORD_LENGTH = 6
type UserManager struct { 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 um.userDatabase = userDatabase
exists, error := um.UsernameExists(DEFAULT_USERNAME) 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") 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) _, error = um.CreateUser(&user)
if error != nil { if error != nil {
return error return error
@ -42,7 +43,7 @@ func (um *UserManager) Initialize(userDatabase *UserDatabase) error {
return nil 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) exists, error := um.UsernameExists(user.Username)
if error != nil { if error != nil {
return "", error return "", error
@ -109,7 +110,7 @@ func (um *UserManager) Login(username, password string) (string, error) {
return token, nil 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) session, error := um.userDatabase.GetSession(sessionToken)
if error != nil { if error != nil {
return nil, error return nil, error
@ -117,7 +118,7 @@ func (um *UserManager) GetSession(sessionToken string) (*Session, error) {
return session, nil 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) user, error := um.userDatabase.GetUserById(id)
if error != nil { if error != nil {
return nil, error return nil, error
@ -125,12 +126,12 @@ func (um *UserManager) GetUserById(id string) (*User, error) {
return user, nil return user, nil
} }
func (um *UserManager) UpdateUser(user *User) error { func (um *UserManager) UpdateUser(user *d.User) error {
error := um.userDatabase.UpdateUser(user) error := um.userDatabase.UpdateUser(user)
return error 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) correct, error := um.userDatabase.CheckCredentials(user.Username, currentPassword)
if error != nil { if error != nil {
return error return error
@ -155,7 +156,7 @@ func (um *UserManager) DeleteSession(token string) error {
return nil return nil
} }
func (um *UserManager) GetUsers() (*[]User, error) { func (um *UserManager) GetUsers() (*[]d.User, error) {
users, error := um.userDatabase.GetUsers() users, error := um.userDatabase.GetUsers()
return users, error return users, error

View File

@ -69,7 +69,7 @@ func (r WebServer) Router() *echo.Echo {
return r.router 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) log.Info().Msg(message)
responseData := struct { responseData := struct {
Error string `json:"error"` Error string `json:"error"`