mirror of
https://github.com/BillyOutlast/stash-box.git
synced 2026-02-04 02:51:17 +01:00
51 lines
922 B
Go
51 lines
922 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 err = dqb.Destroy(id); err != nil {
|
|
return err
|
|
}
|
|
|
|
if imageID != nil {
|
|
imageService := image.GetService(fac.Image())
|
|
if err := imageService.DestroyUnusedImage(*imageID); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|