init: initial commit
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// App struct
|
||||
type App struct {
|
||||
ctx context.Context
|
||||
}
|
||||
|
||||
// NewApp creates a new App application struct
|
||||
func NewApp() *App {
|
||||
return &App{}
|
||||
}
|
||||
|
||||
// startup is called when the app starts
|
||||
func (a *App) startup(ctx context.Context) {
|
||||
a.ctx = ctx
|
||||
if err := initDB(); err != nil {
|
||||
fmt.Printf("Database initialization failed: %v\n", err)
|
||||
}
|
||||
}
|
||||
|
||||
// shutdown is called when the app is closing
|
||||
func (a *App) shutdown(ctx context.Context) {}
|
||||
|
||||
// --- Game CRUD via SQLite ---
|
||||
|
||||
// GetAllGames returns all user-defined games
|
||||
func (a *App) GetAllGames() []Game {
|
||||
return getAllGamesDB()
|
||||
}
|
||||
|
||||
// GetActiveGameID returns the currently active game ID
|
||||
func (a *App) GetActiveGameID() string {
|
||||
return getActiveGameID()
|
||||
}
|
||||
|
||||
// SetActiveGame sets the active game and saves
|
||||
func (a *App) SetActiveGame(gameID string) error {
|
||||
return setActiveGameID(gameID)
|
||||
}
|
||||
|
||||
// AddGame creates a new game and saves
|
||||
func (a *App) AddGame(game Game) (Game, error) {
|
||||
err := addGameDB(&game)
|
||||
return game, err
|
||||
}
|
||||
|
||||
// UpdateGame updates an existing game's config
|
||||
func (a *App) UpdateGame(game Game) error {
|
||||
return updateGameDB(&game)
|
||||
}
|
||||
|
||||
// DeleteGame removes a game by ID
|
||||
func (a *App) DeleteGame(gameID string) error {
|
||||
err := deleteGameDB(gameID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if a.GetActiveGameID() == gameID {
|
||||
games := a.GetAllGames()
|
||||
if len(games) > 0 {
|
||||
a.SetActiveGame(games[0].ID)
|
||||
} else {
|
||||
a.SetActiveGame("")
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// --- Connection & API ---
|
||||
|
||||
// TestConnection tests connectivity for a game
|
||||
func (a *App) TestConnection(game Game) ConnectionResult {
|
||||
return testHTTPConnection(game)
|
||||
}
|
||||
|
||||
// XRayConnection performs a request and returns the full body
|
||||
func (a *App) XRayConnection(game Game) XRayResult {
|
||||
return XRayConnection(game)
|
||||
}
|
||||
Reference in New Issue
Block a user