Files
golunteer/backend/pkg/db/events/events.go
2025-01-07 16:37:37 +00:00

49 lines
1011 B
Go

package events
import (
"github.com/johannesbuehl/golunteer/backend/pkg/db"
"github.com/johannesbuehl/golunteer/backend/pkg/db/assignments"
)
type Event struct {
eventDataDB
Tasks []string
Assignments map[string]string
}
type eventDataDB struct {
Id int `db:"id"`
Date string `db:"date"`
Description string `db:"description"`
}
// transform the database-entry to an Event
func (e *eventDataDB) Event() (Event, error) {
// get the availabilites associated with the event
if assignemnts, err := assignments.Event(e.Id); err != nil {
return Event{}, err
} else {
return Event{
eventDataDB: *e,
Assignments: assignemnts,
}, nil
}
}
// get all the event ids
func All() (map[int]eventDataDB, error) {
var dbRows []eventDataDB
if err := db.DB.Select(&dbRows, "SELECT * FROM EVENTS"); err != nil {
return nil, err
} else {
eventsMap := map[int]eventDataDB{}
for _, idRow := range dbRows {
eventsMap[idRow.Id] = idRow
}
return eventsMap, nil
}
}