From 9a605f5875920a0d745b105f1f55e3d658cead35 Mon Sep 17 00:00:00 2001 From: InfiniteStash <117855276+InfiniteStash@users.noreply.github.com> Date: Fri, 3 Jan 2025 20:52:43 +0000 Subject: [PATCH] Fix validation --- pkg/api/resolver_mutation_edit.go | 8 ++++---- pkg/manager/edit/performer.go | 4 ++-- pkg/manager/edit/scene.go | 4 ++-- pkg/manager/edit/validate.go | 22 ++++++++-------------- 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/pkg/api/resolver_mutation_edit.go b/pkg/api/resolver_mutation_edit.go index efbaa6ee7..2de1347b6 100644 --- a/pkg/api/resolver_mutation_edit.go +++ b/pkg/api/resolver_mutation_edit.go @@ -49,7 +49,7 @@ func (r *mutationResolver) SceneEdit(ctx context.Context, input models.SceneEdit err = fac.WithTxn(func() error { p := edit.Scene(fac, newEdit) inputArgs := utils.Arguments(ctx).Field("input") - if err := p.Edit(input, inputArgs); err != nil { + if err := p.Edit(input, inputArgs, false); err != nil { return err } @@ -95,7 +95,7 @@ func (r *mutationResolver) SceneEditUpdate(ctx context.Context, id uuid.UUID, in err = fac.WithTxn(func() error { p := edit.Scene(fac, existingEdit) inputArgs := utils.Arguments(ctx).Field("input") - if err := p.Edit(input, inputArgs); err != nil { + if err := p.Edit(input, inputArgs, true); err != nil { return err } @@ -286,7 +286,7 @@ func (r *mutationResolver) PerformerEdit(ctx context.Context, input models.Perfo err = fac.WithTxn(func() error { p := edit.Performer(fac, newEdit) inputArgs := utils.Arguments(ctx).Field("input") - if err := p.Edit(input, inputArgs); err != nil { + if err := p.Edit(input, inputArgs, false); err != nil { return err } @@ -332,7 +332,7 @@ func (r *mutationResolver) PerformerEditUpdate(ctx context.Context, id uuid.UUID err = fac.WithTxn(func() error { p := edit.Performer(fac, existingEdit) inputArgs := utils.Arguments(ctx).Field("input") - if err := p.Edit(input, inputArgs); err != nil { + if err := p.Edit(input, inputArgs, true); err != nil { return err } diff --git a/pkg/manager/edit/performer.go b/pkg/manager/edit/performer.go index 9b52c83bf..f30404c6d 100644 --- a/pkg/manager/edit/performer.go +++ b/pkg/manager/edit/performer.go @@ -24,8 +24,8 @@ func Performer(fac models.Repo, edit *models.Edit) *PerformerEditProcessor { } } -func (m *PerformerEditProcessor) Edit(input models.PerformerEditInput, inputArgs utils.ArgumentsQuery) error { - if err := validatePerformerEditInput(m.fac, input); err != nil { +func (m *PerformerEditProcessor) Edit(input models.PerformerEditInput, inputArgs utils.ArgumentsQuery, update bool) error { + if err := validatePerformerEditInput(m.fac, input, m.edit, update); err != nil { return err } diff --git a/pkg/manager/edit/scene.go b/pkg/manager/edit/scene.go index 1a491a182..1eaa22b74 100644 --- a/pkg/manager/edit/scene.go +++ b/pkg/manager/edit/scene.go @@ -24,8 +24,8 @@ func Scene(fac models.Repo, edit *models.Edit) *SceneEditProcessor { } } -func (m *SceneEditProcessor) Edit(input models.SceneEditInput, inputArgs utils.ArgumentsQuery) error { - if err := validateSceneEditInput(m.fac, input); err != nil { +func (m *SceneEditProcessor) Edit(input models.SceneEditInput, inputArgs utils.ArgumentsQuery, update bool) error { + if err := validateSceneEditInput(m.fac, input, m.edit, update); err != nil { return err } diff --git a/pkg/manager/edit/validate.go b/pkg/manager/edit/validate.go index 25f161650..606c2e037 100644 --- a/pkg/manager/edit/validate.go +++ b/pkg/manager/edit/validate.go @@ -58,14 +58,13 @@ func validateEditPrerequisites(fac models.Repo, edit *models.Edit) error { return nil } -func validateSceneEditInput(fac models.Repo, input models.SceneEditInput) error { +func validateSceneEditInput(fac models.Repo, input models.SceneEditInput, edit *models.Edit, update bool) error { if input.Details == nil { return nil } if input.Details.DraftID != nil { - switch input.Edit.Operation { - case models.OperationEnumCreate: + if !update { draft, err := fac.Draft().Find(*input.Details.DraftID) if err != nil { return err @@ -73,8 +72,8 @@ func validateSceneEditInput(fac models.Repo, input models.SceneEditInput) error if draft == nil { return fmt.Errorf("%w: %s", ErrInvalidDraft, *input.Details.DraftID) } - case models.OperationEnumModify: - edit, err := fac.Edit().Find(*input.Edit.ID) + } else { + edit, err := fac.Edit().Find(edit.ID) if err != nil { return err } @@ -87,8 +86,6 @@ func validateSceneEditInput(fac models.Repo, input models.SceneEditInput) error if data.New.DraftID == nil || *data.New.DraftID != *input.Details.DraftID { return fmt.Errorf("%w: %s", ErrInvalidDraft, *input.Details.DraftID) } - default: - return fmt.Errorf("%w: %s", ErrInvalidDraft, *input.Details.DraftID) } } @@ -156,14 +153,13 @@ func validateSceneEditInput(fac models.Repo, input models.SceneEditInput) error return nil } -func validatePerformerEditInput(fac models.Repo, input models.PerformerEditInput) error { +func validatePerformerEditInput(fac models.Repo, input models.PerformerEditInput, edit *models.Edit, update bool) error { if input.Details == nil { return nil } if input.Details.DraftID != nil { - switch input.Edit.Operation { - case models.OperationEnumCreate: + if !update { draft, err := fac.Draft().Find(*input.Details.DraftID) if err != nil { return err @@ -171,8 +167,8 @@ func validatePerformerEditInput(fac models.Repo, input models.PerformerEditInput if draft == nil { return fmt.Errorf("%w: %s", ErrInvalidDraft, *input.Details.DraftID) } - case models.OperationEnumModify: - edit, err := fac.Edit().Find(*input.Edit.ID) + } else { + edit, err := fac.Edit().Find(edit.ID) if err != nil { return err } @@ -185,8 +181,6 @@ func validatePerformerEditInput(fac models.Repo, input models.PerformerEditInput if data.New.DraftID == nil || *data.New.DraftID != *input.Details.DraftID { return fmt.Errorf("%w: %s", ErrInvalidDraft, *input.Details.DraftID) } - default: - return fmt.Errorf("%w: %s", ErrInvalidDraft, *input.Details.DraftID) } }