mirror of
https://github.com/stashapp/stash-box.git
synced 2026-02-06 18:24:05 -06:00
48 lines
878 B
Go
48 lines
878 B
Go
package draft
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/gofrs/uuid"
|
|
"github.com/stashapp/stash-box/pkg/image"
|
|
"github.com/stashapp/stash-box/pkg/models"
|
|
)
|
|
|
|
func Destroy(fac models.Repo, id uuid.UUID) error {
|
|
dqb := fac.Draft()
|
|
draft, err := dqb.Find(id)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if draft == nil {
|
|
return fmt.Errorf("Draft not found: %v", id)
|
|
}
|
|
|
|
var imageID *uuid.UUID
|
|
switch draft.Type {
|
|
case "SCENE":
|
|
data, err := draft.GetSceneData()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
imageID = data.Image
|
|
case "PERFORMER":
|
|
data, err := draft.GetPerformerData()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
imageID = data.Image
|
|
default:
|
|
return fmt.Errorf("Unsupported type: %s", draft.Type)
|
|
}
|
|
|
|
if imageID != nil {
|
|
imageService := image.GetService(fac.Image())
|
|
if err := imageService.DestroyUnusedImage(*imageID); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return dqb.Destroy(id)
|
|
}
|