pretix-proxy/src/app/service/db_attendie.go

87 lines
2.4 KiB
Go

package service
import (
"errors"
"gorm.io/gorm"
"ulmer-furs.de/pretix-proxy/v2/config"
"ulmer-furs.de/pretix-proxy/v2/entities"
)
func GetAttendieById(id int) (entities.Db_Attendies, error) {
var attendie entities.Db_Attendies
result := config.Database.Find(&attendie, id)
if result.RowsAffected == 0 {
return attendie, errors.New("attendie not found")
}
return attendie, nil
}
func GetAttendieByName(name string) (entities.Db_Attendies, error) {
var attendie entities.Db_Attendies
result := config.Database.First(&attendie, "name = ?", name)
if result.RowsAffected == 0 {
return attendie, errors.New("attendie not found")
}
return attendie, nil
}
func GetAllAttendies() ([]entities.Db_Attendies, error) {
var attendies []entities.Db_Attendies
result := config.Database.Find(&attendies)
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return attendies, errors.New("attendies not found")
}
return attendies, nil
}
func GetAttendiesByEvent(event entities.Db_Event) ([]entities.Db_Attendies, error) {
var attendies []entities.Db_Attendies
result := config.Database.Model(&entities.User{}).Preload("Event").Preload("Role").Where("event_id = ?", event.ID).Find(&attendies)
if result.Error != nil {
return attendies, result.Error
}
return attendies, nil
}
func GetAttendiesByEventPrivacy(event entities.Db_Event, privacy bool) ([]entities.Db_Attendies, error) {
var attendies []entities.Db_Attendies
result := config.Database.Model(&entities.Db_Attendies{}).Preload("Event").Preload("Role").Where("event_id = ?", event.ID).Where("privacy = ?", privacy).Find(&attendies)
if result.Error != nil {
return attendies, result.Error
}
return attendies, nil
}
func CreateNewAttendie(attendie entities.Db_Attendies) error {
result := config.Database.Create(&attendie)
if result.Error != nil {
return result.Error
}
return nil
}
func UpdateAttendie(attendie entities.Db_Attendies) error {
result := config.Database.Save(attendie)
if result.Error != nil {
return result.Error
}
return nil
}
func DeleteAttendie(id int) error {
result := config.Database.Delete(&entities.Db_Attendies{}, id)
if result.Error != nil {
return result.Error
}
return nil
}
func DeleteAttendiesByEvent(event entities.Db_Event) error {
result := config.Database.Unscoped().Where("event_id = ?", event.ID).Delete(entities.Db_Attendies{})
if result.Error != nil {
return result.Error
}
return nil
}