Beispiel #1
0
func ExecuteMediaDeletion(media entity.Media, mediaManager *media.Manager, db *sql.DB) (int, error) {
	count, err := repository.CountMediaUsageById(db, media.Filename)
	if err != nil {
		return 0, err
	} else if count < 1 {
		return 0, nil
	}

	// We only want to delete the file from storage if we are to delete the last link to it
	if count == 1 {
		filename, extension := splitFilename(media.Filename)

		mediaManager.Delete(filename, extension)
	}

	_, err = repository.DeleteMedium(db, media.Id)
	if err != nil {
		return 0, err
	}

	return 0, nil
}