Files
terminal/server/repository/session_audit.go
T

42 lines
1.1 KiB
Go

package repository
import (
"context"
"next-terminal/server/model"
"gorm.io/gorm"
)
type sessionAuditRepository struct {
baseRepository
}
var SessionAuditRepository = new(sessionAuditRepository)
func (r *sessionAuditRepository) FindBySessionId(c context.Context, sessionId string) (model.SessionAudit, error) {
var audit model.SessionAudit
err := r.GetDB(c).Where("session_id = ?", sessionId).First(&audit).Error
if err == gorm.ErrRecordNotFound {
return audit, nil
}
return audit, err
}
func (r *sessionAuditRepository) Create(c context.Context, audit *model.SessionAudit) error {
return r.GetDB(c).Create(audit).Error
}
func (r *sessionAuditRepository) Update(c context.Context, audit *model.SessionAudit) error {
return r.GetDB(c).Save(audit).Error
}
func (r *sessionAuditRepository) Upsert(c context.Context, audit *model.SessionAudit) error {
var existing model.SessionAudit
err := r.GetDB(c).Where("session_id = ?", audit.SessionId).First(&existing).Error
if err == gorm.ErrRecordNotFound {
return r.Create(c, audit)
}
audit.ID = existing.ID
return r.Update(c, audit)
}