From 1f4cc53df833deed939942f0d1401a5b249099c4 Mon Sep 17 00:00:00 2001 From: Danis Kirasirov <dbgbbu@gmail.com> Date: Fri, 28 Feb 2025 09:28:13 +0300 Subject: [PATCH] fix --- pkg/items/item.go | 5 +++-- pkg/schema/schema.go | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/items/item.go b/pkg/items/item.go index 26aaf54f..ee00425f 100644 --- a/pkg/items/item.go +++ b/pkg/items/item.go @@ -296,9 +296,10 @@ func (i *Item) Encode(ctx context.Context, s *schema.Schema) (*Item, error) { func (i *Item) Decode(ctx context.Context, s *schema.Schema, opts ...field.EncodeOption) (*Item, error) { res := *i var err error + opt := field.NewEncodeOptions(opts...) if i.Data != nil { res.Data, err = s.Decode(ctx, i.Data, opts...) - if err != nil { + if err != nil && !opt.GetDataWithErrors { return nil, err } } @@ -310,7 +311,7 @@ func (i *Item) Decode(ctx context.Context, s *schema.Schema, opts ...field.Encod continue } dt, err := schema.Decode(ctx, s, v, opts...) //nolint:govet // err shadows - if err != nil { + if err != nil && !opt.GetDataWithErrors { return nil, err } res.Translations[l] = dt.(map[string]interface{}) diff --git a/pkg/schema/schema.go b/pkg/schema/schema.go index 57dd8f9b..5088370d 100644 --- a/pkg/schema/schema.go +++ b/pkg/schema/schema.go @@ -153,8 +153,9 @@ func (s *Schema) Decode(ctx context.Context, v interface{}, opt ...field.EncodeO return nil, err } + opts := field.NewEncodeOptions(opt...) v, err := Decode(ctx, s, v, opt...) - if err != nil { + if err != nil && !opts.GetDataWithErrors { return nil, err } res, _ := v.(map[string]interface{}) -- GitLab