refactor(database): move database initialization functions to single file
Consolidate InitFrpcDatabase and InitUserDatabase functions into database.go for better code organization and maintainability. Remove duplicate code from frpc.go.
This commit is contained in:
+63
-23
@@ -19,29 +19,8 @@ type User struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func InitDatabase(dbPath string) error {
|
func InitDatabase(dbPath string) error {
|
||||||
var err error
|
InitUserDatabase(dbPath)
|
||||||
db, err = sql.Open("sqlite", dbPath)
|
InitFrpcDatabase(dbPath)
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to open database: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = db.Ping(); err != nil {
|
|
||||||
return fmt.Errorf("failed to ping database: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
createTableSQL := `
|
|
||||||
CREATE TABLE IF NOT EXISTS userLogin (
|
|
||||||
userID INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
username TEXT UNIQUE NOT NULL,
|
|
||||||
passwd TEXT NOT NULL,
|
|
||||||
type TEXT NOT NULL DEFAULT 'visitor'
|
|
||||||
);
|
|
||||||
`
|
|
||||||
_, err = db.Exec(createTableSQL)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to create table: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,3 +223,64 @@ func GetAllUsers() ([]User, error) {
|
|||||||
|
|
||||||
return users, nil
|
return users, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func InitFrpcDatabase(dbPath string) error {
|
||||||
|
var err error
|
||||||
|
frpcDB, err = sql.Open("sqlite", dbPath)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to open frpc database: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = frpcDB.Ping(); err != nil {
|
||||||
|
return fmt.Errorf("failed to ping frpc database: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
createTableSQL := `
|
||||||
|
CREATE TABLE IF NOT EXISTS frpcInstances (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
userID INTEGER NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
serverAddr TEXT NOT NULL,
|
||||||
|
serverPort TEXT NOT NULL,
|
||||||
|
auth_method TEXT NOT NULL,
|
||||||
|
bootAtStart INTEGER NOT NULL DEFAULT 0,
|
||||||
|
runUser TEXT NOT NULL DEFAULT 'root',
|
||||||
|
configPath TEXT NOT NULL,
|
||||||
|
createdAt TEXT NOT NULL,
|
||||||
|
UNIQUE(userID, name)
|
||||||
|
);
|
||||||
|
`
|
||||||
|
_, err = frpcDB.Exec(createTableSQL)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to create frpcInstances table: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func InitUserDatabase(dbPath string) error {
|
||||||
|
var err error
|
||||||
|
db, err = sql.Open("sqlite", dbPath)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to open database: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = db.Ping(); err != nil {
|
||||||
|
return fmt.Errorf("failed to ping database: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
createTableSQL := `
|
||||||
|
CREATE TABLE IF NOT EXISTS userLogin (
|
||||||
|
userID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
username TEXT UNIQUE NOT NULL,
|
||||||
|
passwd TEXT NOT NULL,
|
||||||
|
type TEXT NOT NULL DEFAULT 'visitor'
|
||||||
|
);
|
||||||
|
`
|
||||||
|
_, err = db.Exec(createTableSQL)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to create table: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -49,40 +49,6 @@ type FrpcInstance struct {
|
|||||||
|
|
||||||
var frpcDB *sql.DB
|
var frpcDB *sql.DB
|
||||||
|
|
||||||
func InitFrpcDatabase(dbPath string) error {
|
|
||||||
var err error
|
|
||||||
frpcDB, err = sql.Open("sqlite", dbPath)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to open frpc database: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = frpcDB.Ping(); err != nil {
|
|
||||||
return fmt.Errorf("failed to ping frpc database: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
createTableSQL := `
|
|
||||||
CREATE TABLE IF NOT EXISTS frpcInstances (
|
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
userID INTEGER NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
serverAddr TEXT NOT NULL,
|
|
||||||
serverPort TEXT NOT NULL,
|
|
||||||
auth_method TEXT NOT NULL,
|
|
||||||
bootAtStart INTEGER NOT NULL DEFAULT 0,
|
|
||||||
runUser TEXT NOT NULL DEFAULT 'root',
|
|
||||||
configPath TEXT NOT NULL,
|
|
||||||
createdAt TEXT NOT NULL,
|
|
||||||
UNIQUE(userID, name)
|
|
||||||
);
|
|
||||||
`
|
|
||||||
_, err = frpcDB.Exec(createTableSQL)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to create frpcInstances table: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func CloseFrpcDatabase() error {
|
func CloseFrpcDatabase() error {
|
||||||
if frpcDB != nil {
|
if frpcDB != nil {
|
||||||
return frpcDB.Close()
|
return frpcDB.Close()
|
||||||
|
|||||||
Reference in New Issue
Block a user