Implement dynamically getting board data
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,34 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
func GetBoards(db *sql.DB) ([]Board, error) {
|
||||
rows, err := db.Query(`select id, name, slug, tag from boards order by slug`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var result []Board
|
||||
for rows.Next() {
|
||||
var b Board
|
||||
err := rows.Scan(&b.Id, &b.Name, &b.Slug, &b.Tag)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = append(result, b)
|
||||
}
|
||||
|
||||
return result, rows.Err()
|
||||
}
|
||||
|
||||
func GetBoard(db *sql.DB, slug string) (Board, error) {
|
||||
row := db.QueryRow(`SELECT id, name, slug, tag FROM boards WHERE slug = ?`, slug)
|
||||
|
||||
var result Board
|
||||
row.Scan(&result.Id, &result.Name, &result.Slug, &result.Tag)
|
||||
|
||||
return result, row.Err()
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package database
|
||||
|
||||
import "time"
|
||||
|
||||
type Board struct {
|
||||
Id int
|
||||
Slug string
|
||||
Name string
|
||||
Tag string
|
||||
}
|
||||
|
||||
type Thread struct {
|
||||
Id int
|
||||
BoardId int
|
||||
Subject string
|
||||
CreatedAt time.Time
|
||||
BumpedAt time.Time
|
||||
}
|
||||
|
||||
type Post struct {
|
||||
Id int
|
||||
ThreadId int
|
||||
Author string
|
||||
Body string
|
||||
CreatedAt time.Time
|
||||
}
|
||||
@@ -8,13 +8,13 @@ CREATE TABLE IF NOT EXISTS boards (
|
||||
id INTEGER PRIMARY KEY,
|
||||
slug TEXT NOT NULL UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
tag TEXT
|
||||
tag TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS threads (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
board_id INTEGER NOT NULL,
|
||||
subject TEXT,
|
||||
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
|
||||
@@ -1 +0,0 @@
|
||||
package db
|
||||
@@ -1 +0,0 @@
|
||||
package internal
|
||||
@@ -1 +0,0 @@
|
||||
package internal
|
||||
Reference in New Issue
Block a user