@@ -550,37 +550,37 @@ func (i *ImportFilterFunction) EvaluateFunction(ctx context.Context, doc Body, d
550550func (db * DatabaseCollectionWithUser ) ImportFilterDryRun (ctx context.Context , doc Body , importFn string ) (bool , error ) {
551551
552552 var shouldImport bool
553+
554+ // fetch configured import filter if one is not specified
553555 if importFn == "" {
554556 importFilter := db .importFilter ()
555557 if importFilter == nil {
556- return false , base .HTTPErrorf (http .StatusBadRequest , "No import filter specified" )
557- }
558- output , err := importFilter .EvaluateFunction (ctx , doc , true )
559- if err != nil {
560- return false , & base.ImportFilterDryRunError {Err : err }
558+ return true , nil
561559 }
562- shouldImport = output
563- } else {
564- jsTimeout := time .Duration (base .DefaultJavascriptTimeoutSecs ) * time .Second
565- importRunner , err := newImportFilterRunner (ctx , importFn , jsTimeout )
560+ importFn = importFilter .Function ()
561+ }
562+
563+ // create new import filter runner for this dry run
564+ jsTimeout := time .Duration (base .DefaultJavascriptTimeoutSecs ) * time .Second
565+ importRunner , err := newImportFilterRunner (ctx , importFn , jsTimeout )
566+ if err != nil {
567+ return false , errors .New ("failed to create import filter runner: " + err .Error ())
568+ }
569+ importOutput , err := importRunner .Call (ctx , doc )
570+ if err != nil {
571+ return false , & base.ImportFilterDryRunError {Err : err }
572+ }
573+ switch result := importOutput .(type ) {
574+ case bool :
575+ shouldImport = result
576+ case string :
577+ boolResult , err := strconv .ParseBool (result )
566578 if err != nil {
567- return false , errors .New ("failed to create import filter runner: " + err .Error ())
568- }
569- importOuput , err := importRunner .Call (ctx , doc )
570- switch result := importOuput .(type ) {
571- case bool :
572- shouldImport = result
573- break
574- case string :
575- boolResult , err := strconv .ParseBool (result )
576- if err != nil {
577- return false , err
578- }
579- shouldImport = boolResult
580- break
581- default :
582- return false , & base.ImportFilterDryRunError {Err : err }
579+ return false , err
583580 }
581+ shouldImport = boolResult
582+ default :
583+ return false , & base.ImportFilterDryRunError {Err : err }
584584 }
585585
586586 return shouldImport , nil
0 commit comments