Files
golunteer/backend/pkg/db/tasks/tasks.go
2025-01-21 09:41:27 +00:00

63 lines
1.2 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 {
Name string `json:"name" db:"name" 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{
Name: a.Name,
Enabled: a.Enabled,
}
}
return tasks, nil
}
}
func Add(t Task) error {
_, err := db.DB.NamedExec("INSERT INTO TASKS (name, enabled) VALUES (:name, :enabled)", &t)
return err
}
func Update(t TaskDB) error {
_, err := db.DB.NamedExec("UPDATE TASKS set name = :name, enabled = :enabled WHERE id = :id", &t)
return err
}
func Delete(i int) error {
_, err := db.DB.Exec("DELETE FROM TASKS WHERE id = $1", i)
return err
}