Skip to content
Snippets Groups Projects
Commit acbc5d0c authored by Alena Petraki's avatar Alena Petraki :nail_care_tone1: Committed by Pavel Antonov
Browse files

Доработки локализации Items API: Исправлена ошибка `ReferenceField encode...

Доработки локализации Items API: Исправлена ошибка `ReferenceField encode error: incorrect type: "map", expected "*Reference"` при получении локализации элемента с полем типа Reference
parent 5da08e29
No related branches found
No related tags found
No related merge requests found
...@@ -219,7 +219,7 @@ func (i *Item) Localize(localizer *localizer.Localizer) (err error) { ...@@ -219,7 +219,7 @@ func (i *Item) Localize(localizer *localizer.Localizer) (err error) {
func (i Item) Encode(ctx context.Context, s *schema.Schema) (*Item, error) { func (i Item) Encode(ctx context.Context, s *schema.Schema) (*Item, error) {
if i.Data != nil { if i.Data != nil {
dt, err := schema.Encode(nil, s, i.Data) dt, err := schema.Encode(ctx, s, i.Data)
if err != nil { if err != nil {
// return errors.WithField(err, "data") // return errors.WithField(err, "data")
return nil, err return nil, err
...@@ -228,7 +228,7 @@ func (i Item) Encode(ctx context.Context, s *schema.Schema) (*Item, error) { ...@@ -228,7 +228,7 @@ func (i Item) Encode(ctx context.Context, s *schema.Schema) (*Item, error) {
} }
if len(i.Translations) > 0 { if len(i.Translations) > 0 {
for l, v := range i.Translations { for l, v := range i.Translations {
dt, err := schema.Encode(nil, s, v) dt, err := schema.Encode(ctx, s, v)
if err != nil { if err != nil {
// return errors.WithField(err, fmt.Sprintf("translations.%s", l)) // return errors.WithField(err, fmt.Sprintf("translations.%s", l))
return nil, err return nil, err
...@@ -240,7 +240,6 @@ func (i Item) Encode(ctx context.Context, s *schema.Schema) (*Item, error) { ...@@ -240,7 +240,6 @@ func (i Item) Encode(ctx context.Context, s *schema.Schema) (*Item, error) {
} }
func (i Item) Decode(ctx context.Context, s *schema.Schema) (res *Item, err error) { func (i Item) Decode(ctx context.Context, s *schema.Schema) (res *Item, err error) {
if i.Data != nil { if i.Data != nil {
i.Data, err = s.Decode(ctx, i.Data) i.Data, err = s.Decode(ctx, i.Data)
if err != nil { if err != nil {
...@@ -248,7 +247,15 @@ func (i Item) Decode(ctx context.Context, s *schema.Schema) (res *Item, err erro ...@@ -248,7 +247,15 @@ func (i Item) Decode(ctx context.Context, s *schema.Schema) (res *Item, err erro
// return errors.WithField(err, "data") // return errors.WithField(err, "data")
} }
} }
if len(i.Translations) > 0 {
for l, v := range i.Translations {
dt, err := schema.Decode(ctx, s, v)
if err != nil {
return nil, err
}
i.Translations[l] = dt.(map[string]interface{})
}
}
return &i, nil return &i, nil
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment