diff --git a/database.db b/database.db index 4509f4b..fe97c04 100644 Binary files a/database.db and b/database.db differ diff --git a/database.go b/database.go index e7a619e..4614294 100644 --- a/database.go +++ b/database.go @@ -260,17 +260,17 @@ func InitFrpcDatabase(dbPath string) error { } 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) - } + 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) - } + if err = db.Ping(); err != nil { + return fmt.Errorf("failed to ping database: %w", err) + } - createTableSQL := ` + createTableSQL := ` CREATE TABLE IF NOT EXISTS userLogin ( userID INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, @@ -278,14 +278,14 @@ func InitUserDatabase(dbPath string) error { type TEXT NOT NULL DEFAULT 'visitor' ); ` - _, err = db.Exec(createTableSQL) - if err != nil { - return fmt.Errorf("failed to create table: %w", err) - } - - return nil + _, err = db.Exec(createTableSQL) + if err != nil { + return fmt.Errorf("failed to create table: %w", err) } + return nil +} + func DBAddFrpcInstance(instance FrpcInstance) error { _, err := frpcDB.Exec("INSERT INTO frpcInstances (userID, name, serverAddr, serverPort, auth_method, bootAtStart, runUser, configPath, createdAt) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", instance.UserID, instance.Name, instance.ServerAddr, instance.ServerPort, instance.AuthMethod, instance.BootAtStart, instance.RunUser, instance.ConfigPath, time.Now().Format(time.RFC3339)) @@ -297,11 +297,13 @@ func DBAddFrpcInstance(instance FrpcInstance) error { func DBQueryFrpcInstance(userID int, instanceName string) (FrpcInstance, error) { var instance FrpcInstance + var createdAtStr string err := frpcDB.QueryRow("SELECT id, userID, name, serverAddr, serverPort, auth_method, bootAtStart, runUser, configPath, createdAt FROM frpcInstances WHERE userID = ? AND name = ?", userID, instanceName).Scan( - &instance.ID, &instance.UserID, &instance.Name, &instance.ServerAddr, &instance.ServerPort, &instance.AuthMethod, &instance.BootAtStart, &instance.RunUser, &instance.ConfigPath, &instance.CreatedAt) + &instance.ID, &instance.UserID, &instance.Name, &instance.ServerAddr, &instance.ServerPort, &instance.AuthMethod, &instance.BootAtStart, &instance.RunUser, &instance.ConfigPath, &createdAtStr) if err != nil { return instance, fmt.Errorf("failed to query frpc instance: %w", err) } + instance.CreatedAt, _ = time.Parse(time.RFC3339, createdAtStr) return instance, nil } @@ -332,9 +334,11 @@ func DBListFrpcInstances(userID int) ([]FrpcInstance, error) { var instances []FrpcInstance for rows.Next() { var instance FrpcInstance - if err := rows.Scan(&instance.ID, &instance.UserID, &instance.Name, &instance.ServerAddr, &instance.ServerPort, &instance.AuthMethod, &instance.BootAtStart, &instance.RunUser, &instance.ConfigPath, &instance.CreatedAt); err != nil { + var createdAtStr string + if err := rows.Scan(&instance.ID, &instance.UserID, &instance.Name, &instance.ServerAddr, &instance.ServerPort, &instance.AuthMethod, &instance.BootAtStart, &instance.RunUser, &instance.ConfigPath, &createdAtStr); err != nil { return nil, fmt.Errorf("failed to scan frpc instance: %w", err) } + instance.CreatedAt, _ = time.Parse(time.RFC3339, createdAtStr) instances = append(instances, instance) } @@ -343,4 +347,4 @@ func DBListFrpcInstances(userID int) ([]FrpcInstance, error) { } return instances, nil -} \ No newline at end of file +}