41 lines
1.0 KiB
Go
41 lines
1.0 KiB
Go
package models
|
|
|
|
import (
|
|
"database/sql"
|
|
"time"
|
|
)
|
|
|
|
type Repost struct {
|
|
ID int
|
|
ThreadID int
|
|
BoardID int
|
|
UserID int
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
func GetRepostsByThreadID(db *sql.DB, threadID int) ([]Repost, error) {
|
|
query := "SELECT id, thread_id, board_id, user_id, created_at FROM reposts WHERE thread_id = ?"
|
|
rows, err := db.Query(query, threadID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
var reposts []Repost
|
|
for rows.Next() {
|
|
repost := Repost{}
|
|
err := rows.Scan(&repost.ID, &repost.ThreadID, &repost.BoardID, &repost.UserID, &repost.CreatedAt)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
reposts = append(reposts, repost)
|
|
}
|
|
return reposts, nil
|
|
}
|
|
|
|
// Stubbed for future implementation
|
|
func CreateRepost(db *sql.DB, repost Repost) error {
|
|
query := "INSERT INTO reposts (thread_id, board_id, user_id, created_at) VALUES (?, ?, ?, NOW())"
|
|
_, err := db.Exec(query, repost.ThreadID, repost.BoardID, repost.UserID)
|
|
return err
|
|
} |