(_ context.Context, objID uint)
| 229 | } |
| 230 | |
| 231 | func (s *sqlDatabase) DeleteFileObject(_ context.Context, objID uint) (err error) { |
| 232 | var fileObjParam params.FileObject |
| 233 | var noop bool |
| 234 | defer func() { |
| 235 | if err == nil && !noop { |
| 236 | s.sendNotify(common.FileObjectEntityType, common.DeleteOperation, fileObjParam) |
| 237 | } |
| 238 | }() |
| 239 | |
| 240 | var fileObj FileObject |
| 241 | err = s.objectsConn.Transaction(func(tx *gorm.DB) error { |
| 242 | if err := tx.Where("id = ?", objID).Omit("content").First(&fileObj).Error; err != nil { |
| 243 | if errors.Is(err, gorm.ErrRecordNotFound) { |
| 244 | return runnerErrors.ErrNotFound |
| 245 | } |
| 246 | return fmt.Errorf("failed to find file obj: %w", err) |
| 247 | } |
| 248 | if q := tx.Unscoped().Where("id = ?", objID).Delete(&FileObject{}); q.Error != nil { |
| 249 | if errors.Is(q.Error, gorm.ErrRecordNotFound) { |
| 250 | return runnerErrors.ErrNotFound |
| 251 | } |
| 252 | return fmt.Errorf("error deleting file object: %w", q.Error) |
| 253 | } |
| 254 | return nil |
| 255 | }) |
| 256 | if err != nil { |
| 257 | if errors.Is(err, runnerErrors.ErrNotFound) { |
| 258 | noop = true |
| 259 | return nil |
| 260 | } |
| 261 | return fmt.Errorf("failed to delete file object: %w", err) |
| 262 | } |
| 263 | return nil |
| 264 | } |
| 265 | |
| 266 | func (s *sqlDatabase) DeleteFileObjectsByTags(_ context.Context, tags []string) (int64, error) { |
| 267 | if len(tags) == 0 { |
nothing calls this directly
no test coverage detected