1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-08-30 22:26:24 -07:00
gochan/pkg/manage/announcements.go
2024-05-24 16:10:07 -07:00

40 lines
1.1 KiB
Go

package manage
import (
"errors"
"time"
"github.com/gochan-org/gochan/pkg/gcsql"
)
var (
errMissingAnnouncementMessage = errors.New("missing message field in announcement")
)
type announcementWithName struct {
ID uint `json:"no"`
Staff string `json:"name"`
Subject string `json:"sub"`
Message string `json:"com"`
Timestamp time.Time `json:"-"`
}
func getAllAnnouncements() ([]announcementWithName, error) {
querySQL := `SELECT id, staff, subject, message, timestamp from DBPREFIXannouncements NATURAL JOIN (
SELECT id AS staff_id, username AS staff FROM DBPREFIXstaff) S1`
rows, err := gcsql.QuerySQL(querySQL)
if err != nil {
return nil, err
}
defer rows.Close()
var announcements []announcementWithName
for rows.Next() {
var announcement announcementWithName
if err = rows.Scan(&announcement.ID, &announcement.Staff, &announcement.Subject, &announcement.Message, &announcement.Timestamp); err != nil {
rows.Close()
return announcements, err
}
announcements = append(announcements, announcement)
}
return announcements, rows.Close()
}