63 lines
1.2 KiB
Go
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
|
|
}
|