Skip to content

Commit

Permalink
Fix validation
Browse files Browse the repository at this point in the history
  • Loading branch information
InfiniteStash committed Jan 3, 2025
1 parent ff2de74 commit 9a605f5
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 22 deletions.
8 changes: 4 additions & 4 deletions pkg/api/resolver_mutation_edit.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/manager/edit/performer.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/manager/edit/scene.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
22 changes: 8 additions & 14 deletions pkg/manager/edit/validate.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,23 +58,22 @@ 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
}
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
}
Expand All @@ -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)
}
}

Expand Down Expand Up @@ -156,23 +153,22 @@ 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
}
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
}
Expand All @@ -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)
}
}

Expand Down

0 comments on commit 9a605f5

Please sign in to comment.