33 lines
739 B
Go
33 lines
739 B
Go
package knowledge_base_repo
|
|
|
|
import (
|
|
"github.com/XingfenD/yoresee_doc/internal/model"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type DeleteKnowledgeBaseOperation struct {
|
|
repo *KnowledgeBaseRepository
|
|
knowledgeBase *model.KnowledgeBase
|
|
tx *gorm.DB
|
|
}
|
|
|
|
func (r *KnowledgeBaseRepository) Delete(knowledgeBase *model.KnowledgeBase) (op *DeleteKnowledgeBaseOperation) {
|
|
return &DeleteKnowledgeBaseOperation{
|
|
repo: r,
|
|
knowledgeBase: knowledgeBase,
|
|
}
|
|
}
|
|
|
|
func (op *DeleteKnowledgeBaseOperation) WithTx(tx *gorm.DB) *DeleteKnowledgeBaseOperation {
|
|
op.tx = tx
|
|
return op
|
|
}
|
|
|
|
func (op *DeleteKnowledgeBaseOperation) Exec() error {
|
|
if op.tx == nil {
|
|
op.tx = op.repo.db
|
|
}
|
|
err := op.tx.Delete(op.knowledgeBase).Error
|
|
return err
|
|
}
|