Files
NextZen-UserService/service/event.go
T

57 lines
1.3 KiB
Go
Raw Normal View History

2022-11-30 12:16:11 +08:00
package service
import (
2022-12-01 17:17:44 +08:00
"encoding/json"
2022-11-30 12:16:11 +08:00
"github.com/IceWhaleTech/CasaOS-UserService/model"
"gorm.io/gorm"
)
type EventService interface {
2024-08-14 12:06:18 +07:00
CreateEvent(m model.EventModel) model.EventModel
2022-11-30 12:16:11 +08:00
GetEvents() (list []model.EventModel)
GetEventByUUID(uuid string) (m model.EventModel)
DeleteEvent(uuid string)
2022-12-01 17:17:44 +08:00
DeleteEventBySerial(serial string)
2022-11-30 12:16:11 +08:00
}
type eventService struct {
db *gorm.DB
}
2024-08-14 12:06:18 +07:00
func (e *eventService) CreateEvent(m model.EventModel) model.EventModel {
2022-11-30 12:16:11 +08:00
e.db.Create(&m)
return m
}
func (e *eventService) GetEvents() (list []model.EventModel) {
e.db.Find(&list)
return
}
func (e *eventService) GetEventByUUID(uuid string) (m model.EventModel) {
e.db.Where("uuid = ?", uuid).First(&m)
return
}
func (e *eventService) DeleteEvent(uuid string) {
e.db.Where("uuid = ?", uuid).Delete(&model.EventModel{})
}
2022-12-01 17:17:44 +08:00
func (e *eventService) DeleteEventBySerial(serial string) {
list := []model.EventModel{}
e.db.Find(&list)
for _, v := range list {
2022-11-30 12:16:11 +08:00
2022-12-01 17:17:44 +08:00
if v.SourceID == "local-storage" {
properties := make(map[string]string)
err := json.Unmarshal([]byte(v.Properties), &properties)
if err != nil {
continue
}
if properties["serial"] == serial {
e.db.Delete(&v)
}
}
}
}
2022-11-30 12:16:11 +08:00
func NewEventService(db *gorm.DB) EventService {
return &eventService{db: db}
}