This repository has been archived on 2025-03-01. You can view files and clone it, but cannot push or open issues or pull requests.
trantor/lib/database/news.go

43 lines
862 B
Go
Raw Permalink Normal View History

2014-06-29 19:41:29 -05:00
package database
import (
2016-09-04 12:32:58 -04:00
"fmt"
2014-08-30 13:17:50 -05:00
"time"
2014-06-29 19:41:29 -05:00
)
// New entry in the news table
type New struct {
2019-11-06 06:53:41 +00:00
ID int `pg:"type:serial"`
Date time.Time `pg:"type:timestamp"`
2014-06-29 19:41:29 -05:00
Text string
}
// AddNews creates a new entry
func (db *pgDB) AddNews(text string) error {
2017-05-21 22:48:43 +00:00
return db.AddRawNews(text, time.Now())
2016-09-04 12:32:58 -04:00
}
2017-05-21 22:48:43 +00:00
func (db *pgDB) AddRawNews(text string, date time.Time) error {
2020-11-30 19:03:31 +00:00
_, err := db.sql.Model(&New{
Text: text,
2016-09-04 12:32:58 -04:00
Date: date,
2020-11-30 19:03:31 +00:00
}).Insert()
return err
2014-06-29 19:41:29 -05:00
}
// GetNews returns all the news for the last 'days' limiting with a maximum of 'num' results
func (db *pgDB) GetNews(num int, days int) ([]New, error) {
var news []New
2016-09-04 12:32:58 -04:00
query := db.sql.Model(&news)
if days != 0 {
daystr := fmt.Sprintf("%d days", days)
query = query.Where("date > CURRENT_TIMESTAMP-?::interval", daystr)
}
err := query.Limit(num).
Order("date DESC").
Select()
return news, err
2014-06-29 19:41:29 -05:00
}