Fix record import field mapping & validation

* Allow undefined record ref validator fn
* Remove field mapping fallback if mapping is provided
This commit is contained in:
Tomaž Jerman
2021-03-08 10:40:06 +01:00
parent 416575ce23
commit 4ede6ffbe2
2 changed files with 17 additions and 8 deletions
+9 -4
View File
@@ -3,15 +3,16 @@ package values
import (
"context"
"fmt"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/pkg/expr"
"github.com/cortezaproject/corteza-server/pkg/slice"
"github.com/cortezaproject/corteza-server/store"
"math/big"
"net/mail"
"net/url"
"strings"
"time"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/pkg/expr"
"github.com/cortezaproject/corteza-server/pkg/slice"
"github.com/cortezaproject/corteza-server/store"
)
// Validator package provides tooling to validate
@@ -324,6 +325,10 @@ func (vldtr validator) vNumber(v *types.RecordValue, f *types.ModuleField, r *ty
}
func (vldtr validator) vRecord(ctx context.Context, s store.Storer, v *types.RecordValue, f *types.ModuleField, r *types.Record, m *types.Module) []types.RecordValueError {
if vldtr.recordRefCheckerFn == nil {
return nil
}
if ok, err := vldtr.recordRefCheckerFn(ctx, s, v, f, m); err != nil {
return e2s(makeInternalErr(f, err))
} else if !ok {
+8 -4
View File
@@ -73,10 +73,14 @@ func (crt *composeRecordShaper) mapValues(ov map[string]string, fm MappingTplSet
mx[m.Cell] = m
}
for k, v := range ov {
if m, has := mx[k]; has {
nv[m.Field] = v
} else {
if len(mx) > 0 {
for k, v := range ov {
if m, has := mx[k]; has {
nv[m.Field] = v
}
}
} else {
for k, v := range ov {
nv[k] = v
}
}