refactor: restructure project
This commit is contained in:
parent
e845d88b6c
commit
947ff566d1
@ -1,4 +1,4 @@
|
|||||||
package users
|
package data
|
||||||
|
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package users
|
package data
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package users
|
package data
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
@ -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")
|
||||||
|
|||||||
@ -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
|
||||||
@ -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"`
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user