Files
shap-planner-backend/storage/storage.go
2026-02-20 23:51:13 +01:00

54 lines
1.2 KiB
Go

package storage
import (
"database/sql"
_ "github.com/glebarez/go-sqlite"
"shap-planner-backend/models"
)
var DB *sql.DB
func InitDB(filepath string) error {
var err error
DB, err = sql.Open("sqlite", filepath)
if err != nil {
return err
}
//Create Users-Table
_, err = DB.Exec(`CREATE TABLE IF NOT EXISTS users(
id TEXT PRIMARY KEY,
username TEXT UNIQUE,
password TEXT
);`)
if err != nil {
return err
}
//Create Expenses-Table
_, err = DB.Exec(`CREATE TABLE IF NOT EXISTS expenses(
id TEXT PRIMARY KEY
)`)
return err
}
func AddUser(user models.User) error {
_, err := DB.Exec("INSERT INTO users(id, username, password) VALUES (?, ?, ?)", user.ID, user.Username, user.Password)
return err
}
func GetUserByUsername(username string) (models.User, error) {
row := DB.QueryRow("SELECT * FROM users WHERE username = ?", username)
var user models.User
err := row.Scan(&user.ID, &user.Username, &user.Password)
return user, err
}
func GetUserById(id string) (models.User, error) {
row := DB.QueryRow("SELECT * FROM users WHERE id = ?", id)
var user models.User
err := row.Scan(&user.ID, &user.Username, &user.Password)
return user, err
}