Some database refactoring

This commit is contained in:
Dominic Ferrando
2025-04-18 10:40:08 -04:00
parent ccc53447de
commit e53a65d437
8 changed files with 94 additions and 79 deletions
+5 -5
View File
@@ -33,9 +33,9 @@ func GetBoard(db *sql.DB, slug string) (Board, error) {
return result, row.Err()
}
func GetBoardThreads(db *sql.DB, board_id int) ([]Thread, error) {
func GetBoardThreads(db *sql.DB, slug string) ([]Thread, error) {
rows, err := db.Query(
`SELECT id, board_id, subject, created_at, bumped_at FROM threads WHERE board_id = ?`, board_id)
`SELECT id, board_slug, subject, created_at, bumped_at FROM threads WHERE board_slug = ?`, slug)
if err != nil {
return nil, err
}
@@ -44,7 +44,7 @@ func GetBoardThreads(db *sql.DB, board_id int) ([]Thread, error) {
var result []Thread
for rows.Next() {
var t Thread
err := rows.Scan(&t.Id, &t.BoardId, &t.Subject, &t.CreatedAt, &t.BumpedAt)
err := rows.Scan(&t.Id, &t.BoardSlug, &t.Subject, &t.CreatedAt, &t.BumpedAt)
if err != nil {
return nil, err
}
@@ -74,14 +74,14 @@ func GetThreadPosts(db *sql.DB, thread_id int) ([]Post, error) {
return result, rows.Err()
}
func PutBoardThread(db *sql.DB, boardId int, subject string, body string) error {
func PutBoardThread(db *sql.DB, board_slug string, subject string, body string) error {
tx, err := db.Begin()
if err != nil {
return err
}
defer tx.Rollback()
res, err := tx.Exec(`INSERT INTO threads (board_id, subject) VALUES (?, ?) RETURNING id`, boardId, subject)
res, err := tx.Exec(`INSERT INTO threads (board_slug, subject) VALUES (?, ?) RETURNING id`, board_slug, subject)
if err != nil {
return err
}
+1 -1
View File
@@ -11,7 +11,7 @@ type Board struct {
type Thread struct {
Id int
BoardId int
BoardSlug string
Subject string
CreatedAt time.Time
BumpedAt time.Time
+4 -4
View File
@@ -13,11 +13,11 @@ CREATE TABLE IF NOT EXISTS boards (
CREATE TABLE IF NOT EXISTS threads (
id INTEGER PRIMARY KEY AUTOINCREMENT,
board_id INTEGER NOT NULL,
board_slug TEXT NOT NULL,
subject TEXT NOT NULL DEFAULT '',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
bumped_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (board_id) REFERENCES boards(id) ON DELETE CASCADE
FOREIGN KEY (board_slug) REFERENCES boards(slug) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE IF NOT EXISTS posts (
@@ -42,8 +42,8 @@ INSERT INTO boards (slug, name, tag) VALUES
-- Welcome threads
-- /comfy/
INSERT INTO threads (board_id, subject) VALUES (
(SELECT id FROM boards WHERE slug='comfy'),
INSERT INTO threads (board_slug, subject) VALUES (
'comfy',
'Welcome to /comfy/.'
);
INSERT INTO posts (thread_id, body) VALUES (