Files
golunteer/backend/pkg/db/tasks/tasks.go
2025-01-19 01:18:45 +00:00

57 lines
1.1 KiB
Go

package tasks
import (
"github.com/johannesbuehl/golunteer/backend/pkg/db"
)
type TaskDB struct {
ID int `json:"id" db:"id" validate:"required"`
Task `valdate:"required" `
}
type Task struct {
Text string `json:"text" db:"text" validate:"required"`
Enabled bool `json:"enabled" db:"enabled" validate:"required"`
}
func GetSlice() ([]TaskDB, error) {
var tasksRaw []TaskDB
if err := db.DB.Select(&tasksRaw, "SELECT * FROM TASKS"); err != nil {
return nil, err
} else {
return tasksRaw, nil
}
}
func GetMap() (map[int]Task, error) {
if tasksRaw, err := GetSlice(); err != nil {
return nil, err
} else {
// convert the result in a map
tasks := map[int]Task{}
for _, a := range tasksRaw {
tasks[a.ID] = Task{
Text: a.Text,
Enabled: a.Enabled,
}
}
return tasks, nil
}
}
func Add(t Task) error {
_, err := db.DB.NamedExec("INSERT INTO TASKS (text, enabled) VALUES (:text, :enabled)", &t)
return err
}
func Update(t TaskDB) error {
_, err := db.DB.NamedExec("UPDATE TASKS set text = :text, enabled = :enabled WHERE id = :id", &t)
return err
}