mirror of
https://github.com/wgh136/nysoure.git
synced 2025-09-27 12:17:24 +00:00
Add resources_count to collection.
This commit is contained in:
@@ -80,7 +80,11 @@ func AddResourceToCollection(collectionID uint, resourceID uint) error {
|
||||
collection := &model.Collection{}
|
||||
|
||||
if err := tx.Where("id = ?", collectionID).First(collection).Error; err != nil {
|
||||
return err
|
||||
return model.NewRequestError("Invalid collection ID")
|
||||
}
|
||||
|
||||
if err := tx.Model(&model.Resource{}).Where("id = ?", resourceID).First(&model.Resource{}).Error; err != nil {
|
||||
return model.NewRequestError("Invalid resource ID")
|
||||
}
|
||||
|
||||
if err := tx.Model(collection).Association("Resources").Append(&model.Resource{
|
||||
@@ -91,6 +95,10 @@ func AddResourceToCollection(collectionID uint, resourceID uint) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := tx.Model(collection).UpdateColumn("resources_count", gorm.Expr("resources_count + ?", 1)).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
@@ -100,7 +108,11 @@ func RemoveResourceFromCollection(collectionID uint, resourceID uint) error {
|
||||
collection := &model.Collection{}
|
||||
|
||||
if err := tx.Where("id = ?", collectionID).First(collection).Error; err != nil {
|
||||
return err
|
||||
return model.NewRequestError("Invalid collection ID")
|
||||
}
|
||||
|
||||
if err := tx.Model(&model.Resource{}).Where("id = ?", resourceID).First(&model.Resource{}).Error; err != nil {
|
||||
return model.NewRequestError("Invalid resource ID")
|
||||
}
|
||||
|
||||
if err := tx.Model(collection).Association("Resources").Delete(&model.Resource{
|
||||
@@ -111,6 +123,10 @@ func RemoveResourceFromCollection(collectionID uint, resourceID uint) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := tx.Model(collection).UpdateColumn("resources_count", gorm.Expr("resources_count - ?", 1)).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user