refactor deletion code

This commit is contained in:
Carl Pearson
2024-09-11 08:44:56 -06:00
parent 7bc8b10332
commit 648ebdd424

View File

@@ -472,19 +472,14 @@ func videoRestartHandler(c echo.Context) error {
return c.Redirect(http.StatusSeeOther, "/videos") return c.Redirect(http.StatusSeeOther, "/videos")
} }
func videoDeleteHandler(c echo.Context) error { func deleteTranscodes(originalID int) {
id, _ := strconv.Atoi(c.Param("id")) fmt.Println("Delete Transcode entries for Original", originalID)
var orig Original db.Delete(&Transcode{}, "original_id = ?", originalID)
if err := db.First(&orig, id).Error; err != nil { }
return c.Redirect(http.StatusSeeOther, "/videos")
}
fmt.Println("Delete Transcode entries for Original", id) func deleteTranscodedVideos(originalID int) {
db.Delete(&Transcode{}, "original_id = ?", id)
// delete videos
var videos []Video var videos []Video
db.Where("original_id = ?", id).Find(&videos) db.Where("original_id = ?", originalID).Where("source = ?", "transcoded").Find(&videos)
for _, video := range videos { for _, video := range videos {
path := filepath.Join(getDataDir(), video.Filename) path := filepath.Join(getDataDir(), video.Filename)
fmt.Println("remove", path) fmt.Println("remove", path)
@@ -493,11 +488,27 @@ func videoDeleteHandler(c echo.Context) error {
fmt.Println("error removing", path, err) fmt.Println("error removing", path, err)
} }
} }
db.Delete(&Video{}, "original_id = ?", id) db.Delete(&Video{}, "original_id = ?", originalID)
}
func deleteOriginalVideos(originalID int) {
var videos []Video
db.Where("original_id = ?", originalID).Where("source = ?", "original").Find(&videos)
for _, video := range videos {
path := filepath.Join(getDataDir(), video.Filename)
fmt.Println("remove", path)
err := os.Remove(path)
if err != nil {
fmt.Println("error removing", path, err)
}
}
db.Delete(&Video{}, "original_id = ?", originalID)
}
func deleteAudios(originalID int) {
// delete audios // delete audios
var audios []Audio var audios []Audio
db.Where("original_id = ?", id).Find(&audios) db.Where("original_id = ?", originalID).Find(&audios)
for _, audio := range audios { for _, audio := range audios {
path := filepath.Join(getDataDir(), audio.Filename) path := filepath.Join(getDataDir(), audio.Filename)
fmt.Println("remove", path) fmt.Println("remove", path)
@@ -506,11 +517,22 @@ func videoDeleteHandler(c echo.Context) error {
fmt.Println("error removing", path, err) fmt.Println("error removing", path, err)
} }
} }
db.Delete(&Video{}, "original_id = ?", id) db.Delete(&Video{}, "original_id = ?", originalID)
}
func videoDeleteHandler(c echo.Context) error {
id, _ := strconv.Atoi(c.Param("id"))
var orig Original
if err := db.First(&orig, id).Error; err != nil {
return c.Redirect(http.StatusSeeOther, "/videos")
}
deleteTranscodes(id)
deleteTranscodedVideos(id)
deleteOriginalVideos(id)
deleteAudios(id)
// Delete original
db.Delete(&orig) db.Delete(&orig)
return c.Redirect(http.StatusSeeOther, "/videos") return c.Redirect(http.StatusSeeOther, "/videos")
} }
@@ -524,3 +546,13 @@ func tempHandler(c echo.Context) error {
return c.File(tempURL.FilePath) return c.File(tempURL.FilePath)
} }
// func processHandler(c echo.Context) error {
// id, _ := strconv.Atoi(c.Param("id"))
// deleteTranscodes(id)
// deleteAudios(id)
// deleteTranscodedVideos(id)
// processOriginal(id)
// }