migrate from github
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package attachment_repo
|
||||
|
||||
import (
|
||||
"github.com/XingfenD/yoresee_doc/internal/model"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type AttachmentRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func NewAttachmentRepository(db *gorm.DB) *AttachmentRepository {
|
||||
return &AttachmentRepository{db: db}
|
||||
}
|
||||
|
||||
func (r *AttachmentRepository) Create(attachment *model.Attachment) error {
|
||||
return r.db.Create(attachment).Error
|
||||
}
|
||||
|
||||
func (r *AttachmentRepository) ListByDocumentID(documentID int64) ([]*model.Attachment, error) {
|
||||
attachments := make([]*model.Attachment, 0)
|
||||
if err := r.db.
|
||||
Where("document_id = ?", documentID).
|
||||
Order("created_at desc").
|
||||
Find(&attachments).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return attachments, nil
|
||||
}
|
||||
|
||||
func (r *AttachmentRepository) GetByExternalIDAndDocumentID(externalID string, documentID int64) (*model.Attachment, error) {
|
||||
attachment := &model.Attachment{}
|
||||
if err := r.db.
|
||||
Where("external_id = ? AND document_id = ?", externalID, documentID).
|
||||
First(attachment).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return attachment, nil
|
||||
}
|
||||
|
||||
func (r *AttachmentRepository) DeleteByID(id int64) error {
|
||||
return r.db.Delete(&model.Attachment{}, id).Error
|
||||
}
|
||||
|
||||
func IsNotFound(err error) bool {
|
||||
return err == gorm.ErrRecordNotFound
|
||||
}
|
||||
Reference in New Issue
Block a user