87 lines
2.4 KiB
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
|
|
}
|