feat: delete news, tag, and category

This commit is contained in:
ericprd
2025-03-05 23:55:41 +08:00
parent 299fcf949b
commit d217ec8a62
21 changed files with 131 additions and 16 deletions
+28
View File
@@ -0,0 +1,28 @@
package newsrepository
import (
"fmt"
newsdomain "legalgo-BE-go/internal/domain/news"
)
func (a *accessor) Delete(id string) error {
var news newsdomain.News
if err := a.db.Preload("Categories").Preload("Tags").First(&news, "id = ?", id).Error; err != nil {
return fmt.Errorf("failed to find news: %v", err)
}
if err := a.db.Model(&news).Association("Categories").Clear(); err != nil {
return fmt.Errorf("failed to remove categories association: %v", err)
}
if err := a.db.Model(&news).Association("Tags").Clear(); err != nil {
return fmt.Errorf("failed to remove tags association: %v", err)
}
if err := a.db.Delete(&news, "id = ?", id).Error; err != nil {
return fmt.Errorf("failed to delete news %s : %v", id, err)
}
return nil
}
+1
View File
@@ -12,6 +12,7 @@ type accessor struct {
type News interface {
GetAll() ([]newsdomain.News, error)
Create(newsdomain.News) error
Delete(string) error
}
func New(db *database.DB) News {