event.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package schema
  2. import (
  3. "context"
  4. "time"
  5. "github.com/gravitl/netmaker/db"
  6. "github.com/gravitl/netmaker/models"
  7. "gorm.io/datatypes"
  8. )
  9. type Event struct {
  10. ID string `gorm:"primaryKey" json:"id"`
  11. Action models.Action `gorm:"action" json:"action"`
  12. Source datatypes.JSON `gorm:"source" json:"source"`
  13. Origin models.Origin `gorm:"origin" json:"origin"`
  14. Target datatypes.JSON `gorm:"target" json:"target"`
  15. NetworkID models.NetworkID `gorm:"network_id" json:"network_id"`
  16. TriggeredBy string `gorm:"triggered_by" json:"triggered_by"`
  17. Diff datatypes.JSON `gorm:"diff" json:"diff"`
  18. TimeStamp time.Time `gorm:"time_stamp" json:"time_stamp"`
  19. }
  20. func (a *Event) Get(ctx context.Context) error {
  21. return db.FromContext(ctx).Model(&Event{}).First(&a).Where("id = ?", a.ID).Error
  22. }
  23. func (a *Event) Update(ctx context.Context) error {
  24. return db.FromContext(ctx).Model(&Event{}).Where("id = ?", a.ID).Updates(&a).Error
  25. }
  26. func (a *Event) Create(ctx context.Context) error {
  27. return db.FromContext(ctx).Model(&Event{}).Create(&a).Error
  28. }
  29. func (a *Event) ListByNetwork(ctx context.Context) (ats []Event, err error) {
  30. err = db.FromContext(ctx).Model(&Event{}).Where("network_id = ?", a.NetworkID).Order("time_stamp DESC").Find(&ats).Error
  31. return
  32. }
  33. func (a *Event) ListByUser(ctx context.Context) (ats []Event, err error) {
  34. err = db.FromContext(ctx).Model(&Event{}).Where("triggered_by = ?", a.TriggeredBy).Order("time_stamp DESC").Find(&ats).Error
  35. return
  36. }
  37. func (a *Event) ListByUserAndNetwork(ctx context.Context) (ats []Event, err error) {
  38. err = db.FromContext(ctx).Model(&Event{}).Where("network_id = ? AND triggered_by = ?",
  39. a.NetworkID, a.TriggeredBy).Order("time_stamp DESC").Find(&ats).Error
  40. return
  41. }
  42. func (a *Event) List(ctx context.Context) (ats []Event, err error) {
  43. err = db.FromContext(ctx).Model(&Event{}).Order("time_stamp DESC").Find(&ats).Error
  44. return
  45. }