42 lines
1.1 KiB
Go
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)
|
|
}
|