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