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:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user