diff --git a/.vscode/launch.json b/.vscode/launch.json index 8040bd0..24ca420 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,9 +12,9 @@ "mode": "auto", "buildFlags": "-tags webui", "program": "./cmd/webapi", - "args": [ - "--db-filename", "/home/marco/wasa/wasadata/wasaphoto.db", "--data-path", "/home/marco/wasa/wasadata/data" - ] + //"args": [ + // "--db-filename", "/home/marco/wasa/wasadata/wasaphoto.db", "--data-path", "/home/marco/wasa/wasadata/data" + //] } ] } \ No newline at end of file diff --git a/cmd/webapi/main.go b/cmd/webapi/main.go index 490fec3..81a8bbb 100644 --- a/cmd/webapi/main.go +++ b/cmd/webapi/main.go @@ -81,6 +81,12 @@ func run() error { logger.Infof("application initializing") + // Create the directories if they don't exist + if err := os.MkdirAll(cfg.Data.Path, 0755); err != nil { + logger.WithError(err).Error("error creating data directory") + return fmt.Errorf("creating data directory: %w", err) + } + // Start Database logger.Println("initializing database support") dbconn, err := sql.Open("sqlite3", cfg.DB.Filename) @@ -120,6 +126,8 @@ func run() error { logger.WithError(err).Error("error creating the API server instance") return fmt.Errorf("creating the API server instance: %w", err) } + + router := apirouter.Handler() router, err = registerWebUI(router) diff --git a/service/database/database.go b/service/database/database.go index 0aeb9ad..2796d56 100644 --- a/service/database/database.go +++ b/service/database/database.go @@ -100,6 +100,7 @@ func New(db *sql.DB) (AppDatabase, error) { //todo: check for all the tables, not just users err := db.QueryRow(`SELECT name FROM sqlite_master WHERE type='table' AND name='users';`).Scan(&tableName) if errors.Is(err, sql.ErrNoRows) { + //fmt.Println("database is empty, creating structure") sqlStmt := `CREATE TABLE "users" ( "uid" TEXT NOT NULL, "name" TEXT NOT NULL UNIQUE,