refactored some database retrievle stuff

This commit is contained in:
z1glr
2025-01-29 19:42:32 +00:00
parent 2c005e61a6
commit 6d38048e67
11 changed files with 281 additions and 209 deletions

View File

@@ -1,8 +1,6 @@
package availabilities
import (
"github.com/johannesbuehl/golunteer/backend/pkg/db"
)
import "github.com/johannesbuehl/golunteer/backend/pkg/db"
type AvailabilityID int

View File

@@ -1,36 +0,0 @@
package availabilities
import (
"github.com/johannesbuehl/golunteer/backend/pkg/db"
)
type eventAvailabilities struct {
UserName string `db:"userName"`
AvailabilityID int `db:"availabilityID"`
}
type AvailabilityMap map[int][]string
func Event(eventID int) (AvailabilityMap, error) {
// get the availabilities for the event
var availabilitiesRows []eventAvailabilities
if err := db.DB.Select(&availabilitiesRows, "SELECT userName, availabilityID FROM USER_AVAILABILITIES WHERE eventID = ?", eventID); err != nil {
return nil, err
} else {
// transform the result into a map
eventAvailabilities := AvailabilityMap{}
// get the availabilities
for _, a := range availabilitiesRows {
// if there is no slice for this availability, create it
if _, exists := eventAvailabilities[a.AvailabilityID]; !exists {
eventAvailabilities[a.AvailabilityID] = make([]string, 0)
}
eventAvailabilities[a.AvailabilityID] = append(eventAvailabilities[a.AvailabilityID], a.UserName)
}
return eventAvailabilities, nil
}
}