fixed assignments view once again
This commit is contained in:
@@ -4,27 +4,19 @@ import (
|
||||
"github.com/johannesbuehl/golunteer/backend/pkg/db"
|
||||
)
|
||||
|
||||
type assignments map[string]*string
|
||||
|
||||
type eventAssignmentDB struct {
|
||||
TaskName string `db:"taskName"`
|
||||
UserName *string `db:"userName"`
|
||||
type EventAssignment struct {
|
||||
TaskID int `db:"taskID" json:"taskID"`
|
||||
TaskName string `db:"taskName" json:"taskName"`
|
||||
UserName *string `db:"userName" json:"userName"`
|
||||
}
|
||||
|
||||
func Event(eventID int) (assignments, error) {
|
||||
func Event(eventID int) ([]EventAssignment, error) {
|
||||
// get the assignments from the database
|
||||
var assignmentRows []eventAssignmentDB
|
||||
var assignmentRows []EventAssignment
|
||||
|
||||
if err := db.DB.Select(&assignmentRows, "SELECT USERS.name AS userName, TASKS.text AS taskName FROM USER_ASSIGNMENTS LEFT JOIN USERS ON USER_ASSIGNMENTS.userName = USERS.name LEFT JOIN TASKS ON USER_ASSIGNMENTS.taskID = TASKS.id WHERE USER_ASSIGNMENTS.eventID = ?", eventID); err != nil {
|
||||
if err := db.DB.Select(&assignmentRows, "SELECT USERS.name AS userName, taskID, TASKS.name AS taskName FROM USER_ASSIGNMENTS LEFT JOIN USERS ON USER_ASSIGNMENTS.userName = USERS.name LEFT JOIN TASKS ON USER_ASSIGNMENTS.taskID = TASKS.id WHERE USER_ASSIGNMENTS.eventID = ?", eventID); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
// transform the rows into the returned map
|
||||
eventAssignments := assignments{}
|
||||
|
||||
for _, assignment := range assignmentRows {
|
||||
eventAssignments[assignment.TaskName] = assignment.UserName
|
||||
}
|
||||
|
||||
return eventAssignments, nil
|
||||
return assignmentRows, nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,19 +10,19 @@ type AvailabilityDB struct {
|
||||
}
|
||||
|
||||
type Availability struct {
|
||||
Text string `db:"text" json:"text" validate:"required"`
|
||||
Name string `db:"name" json:"name" validate:"required"`
|
||||
Enabled bool `db:"enabled" json:"enabled" validate:"required"`
|
||||
Color string `db:"color" json:"color" validate:"required"`
|
||||
}
|
||||
|
||||
func Add(a Availability) error {
|
||||
_, err := db.DB.NamedExec("INSERT INTO AVAILABILITIES (text, color, enabled) VALUES (:text, :color, :enabled)", a)
|
||||
_, err := db.DB.NamedExec("INSERT INTO AVAILABILITIES (name, color, enabled) VALUES (:name, :color, :enabled)", a)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func Update(a AvailabilityDB) error {
|
||||
_, err := db.DB.NamedExec("UPDATE AVAILABILITIES SET text = :text, color = :color, enabled = :enabled WHERE id = :id", a)
|
||||
_, err := db.DB.NamedExec("UPDATE AVAILABILITIES SET name = :name, color = :color, enabled = :enabled WHERE id = :id", a)
|
||||
|
||||
return err
|
||||
}
|
||||
@@ -47,7 +47,7 @@ func Keys() (map[int]Availability, error) {
|
||||
|
||||
for _, a := range availabilitiesRaw {
|
||||
availabilities[a.Id] = Availability{
|
||||
Text: a.Text,
|
||||
Name: a.Name,
|
||||
Enabled: a.Enabled,
|
||||
Color: a.Color,
|
||||
}
|
||||
@@ -56,3 +56,9 @@ func Keys() (map[int]Availability, error) {
|
||||
return availabilities, nil
|
||||
}
|
||||
}
|
||||
|
||||
func Delete(id int) error {
|
||||
_, err := db.DB.Exec("DELETE FROM AVAILABILITIES WHERE id = $1", id)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ func Event(eventID int) (map[string]string, error) {
|
||||
return nil, err
|
||||
} else {
|
||||
for _, a := range availabilitiesRows {
|
||||
eventAvailabilities[a.UserName] = availabilitiesMap[a.AvailabilityID].Text
|
||||
eventAvailabilities[a.UserName] = availabilitiesMap[a.AvailabilityID].Name
|
||||
}
|
||||
|
||||
return eventAvailabilities, nil
|
||||
|
||||
@@ -19,6 +19,8 @@ func init() {
|
||||
// connect to the database
|
||||
DB = sqlx.MustOpen("sqlite", config.Database)
|
||||
|
||||
DB.MustExec("PRAGMA foreign_keys = ON")
|
||||
|
||||
// create the tables if they don't exist
|
||||
if dbSetupInstructions, err := os.ReadFile("setup.sql"); err != nil {
|
||||
panic("can't read database-setup")
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
|
||||
type EventWithAssignment struct {
|
||||
eventDataDB
|
||||
Tasks map[string]*string `json:"tasks"`
|
||||
Tasks []assignments.EventAssignment `json:"tasks"`
|
||||
}
|
||||
|
||||
type EventWithAvailabilities struct {
|
||||
@@ -61,6 +61,7 @@ type EventCreate struct {
|
||||
}
|
||||
|
||||
func Create(event EventCreate) error {
|
||||
// convert the date to utc
|
||||
if result, err := db.DB.NamedExec("INSERT INTO EVENTS (date, description) VALUES (:date, :description)", event); err != nil {
|
||||
return err
|
||||
} else if id, err := result.LastInsertId(); err != nil {
|
||||
@@ -160,7 +161,7 @@ func Update(event EventPatch) error {
|
||||
func All() ([]eventDataDB, error) {
|
||||
var dbRows []eventDataDB
|
||||
|
||||
if err := db.DB.Select(&dbRows, "SELECT *, DATE_FORMAT(date, '%Y-%m-%dT%H:%i:%s') as date FROM EVENTS"); err != nil {
|
||||
if err := db.DB.Select(&dbRows, "SELECT * FROM EVENTS"); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return dbRows, nil
|
||||
|
||||
@@ -10,7 +10,7 @@ type TaskDB struct {
|
||||
}
|
||||
|
||||
type Task struct {
|
||||
Text string `json:"text" db:"text" validate:"required"`
|
||||
Name string `json:"name" db:"name" validate:"required"`
|
||||
Enabled bool `json:"enabled" db:"enabled" validate:"required"`
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ func GetMap() (map[int]Task, error) {
|
||||
|
||||
for _, a := range tasksRaw {
|
||||
tasks[a.ID] = Task{
|
||||
Text: a.Text,
|
||||
Name: a.Name,
|
||||
Enabled: a.Enabled,
|
||||
}
|
||||
}
|
||||
@@ -44,13 +44,19 @@ func GetMap() (map[int]Task, error) {
|
||||
}
|
||||
|
||||
func Add(t Task) error {
|
||||
_, err := db.DB.NamedExec("INSERT INTO TASKS (text, enabled) VALUES (:text, :enabled)", &t)
|
||||
_, 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 text = :text, enabled = :enabled WHERE id = :id", &t)
|
||||
_, 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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user