Use pointer receiver more offen

This commit is contained in:
nemunaire 2021-11-22 15:35:07 +01:00
parent 6999b4e728
commit c7569b5e54
59 changed files with 688 additions and 672 deletions

View file

@ -36,15 +36,15 @@ func GetLastEvents() ([]Event, error) {
}
// GetEvents returns the list of all events, sorted by date, last first
func GetEvents() ([]Event, error) {
func GetEvents() ([]*Event, error) {
if rows, err := DBQuery("SELECT id_event, txt, kind, time FROM events ORDER BY time DESC"); err != nil {
return nil, err
} else {
defer rows.Close()
var events = make([]Event, 0)
var events []*Event
for rows.Next() {
var e Event
e := &Event{}
if err := rows.Scan(&e.Id, &e.Text, &e.Kind, &e.Time); err != nil {
return nil, err
}
@ -59,24 +59,25 @@ func GetEvents() ([]Event, error) {
}
// GetEvent retrieves the event with the given id
func GetEvent(id int64) (e Event, err error) {
func GetEvent(id int64) (e *Event, err error) {
e = &Event{}
err = DBQueryRow("SELECT id_event, txt, kind, time FROM events WHERE id_event=?", id).Scan(&e.Id, &e.Text, &e.Kind, &e.Time)
return
}
// NewEvent creates a new event in the database and returns the corresponding structure
func NewEvent(txt string, kind string) (Event, error) {
func NewEvent(txt string, kind string) (*Event, error) {
if res, err := DBExec("INSERT INTO events (txt, kind, time) VALUES (?, ?, ?)", txt, kind, time.Now()); err != nil {
return Event{}, err
return nil, err
} else if eid, err := res.LastInsertId(); err != nil {
return Event{}, err
return nil, err
} else {
return Event{eid, txt, kind, time.Now()}, nil
return &Event{eid, txt, kind, time.Now()}, nil
}
}
// Update applies modifications back to the database
func (e Event) Update() (int64, error) {
func (e *Event) Update() (int64, error) {
if res, err := DBExec("UPDATE events SET txt = ?, kind = ?, time = ? WHERE id_event = ?", e.Text, e.Kind, e.Time, e.Id); err != nil {
return 0, err
} else if nb, err := res.RowsAffected(); err != nil {
@ -87,7 +88,7 @@ func (e Event) Update() (int64, error) {
}
// Delete the event from the database
func (e Event) Delete() (int64, error) {
func (e *Event) Delete() (int64, error) {
if res, err := DBExec("DELETE FROM events WHERE id_event = ?", e.Id); err != nil {
return 0, err
} else if nb, err := res.RowsAffected(); err != nil {