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 {
|
|
TaskID int `json:"taskID" db:"taskID" validate:"required"`
|
|
Task `valdate:"required" `
|
|
}
|
|
|
|
type Task struct {
|
|
TaskName string `json:"taskName" db:"taskName" 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.TaskID] = Task{
|
|
TaskName: a.TaskName,
|
|
Enabled: a.Enabled,
|
|
}
|
|
}
|
|
|
|
return tasks, nil
|
|
}
|
|
}
|
|
|
|
func Add(t Task) error {
|
|
_, err := db.DB.NamedExec("INSERT INTO TASKS (taskName, enabled) VALUES (:taskName, :enabled)", &t)
|
|
|
|
return err
|
|
}
|
|
|
|
func Update(t TaskDB) error {
|
|
_, err := db.DB.NamedExec("UPDATE TASKS SET taskName = :taskName, enabled = :enabled WHERE taskID = :taskID", &t)
|
|
|
|
return err
|
|
}
|
|
|
|
func Delete(i int) error {
|
|
_, err := db.DB.Exec("DELETE FROM TASKS WHERE taskID = $1", i)
|
|
|
|
return err
|
|
}
|