Files
golunteer/backend/pkg/db/assignments/assignments.go
2025-01-13 22:22:10 +00:00

31 lines
907 B
Go

package assignments
import (
"github.com/johannesbuehl/golunteer/backend/pkg/db"
)
type assignments map[string]*string
type eventAssignmentDB struct {
TaskName string `db:"taskName"`
UserName *string `db:"userName"`
}
func Event(eventID int) (assignments, error) {
// get the assignments from the database
var assignmentRows []eventAssignmentDB
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 {
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
}
}