comparison pkg/imports/bn.go @ 4070:4332b9e26e2f historization_ng

Merged default
author Sascha Wilde <wilde@intevation.de>
date Thu, 25 Jul 2019 13:20:32 +0200
parents 12f476e91c70 fe3dd65c0891
children af2b20d6c921
comparison
equal deleted inserted replaced
4069:12f476e91c70 4070:4332b9e26e2f
22 "regexp" 22 "regexp"
23 "strconv" 23 "strconv"
24 "strings" 24 "strings"
25 "time" 25 "time"
26 26
27 "gemma.intevation.de/gemma/pkg/pgxutils"
27 "gemma.intevation.de/gemma/pkg/soap/ifbn" 28 "gemma.intevation.de/gemma/pkg/soap/ifbn"
28 "github.com/jackc/pgx/pgtype" 29 "github.com/jackc/pgx/pgtype"
29 ) 30 )
30 31
31 // Bottleneck is an import job to import 32 // Bottleneck is an import job to import
579 bn.Source, 580 bn.Source,
580 tolerance, 581 tolerance,
581 ) 582 )
582 } 583 }
583 if err != nil { 584 if err != nil {
584 feedback.Warn(handleError(err).Error()) 585 feedback.Warn(pgxutils.HandleError(err).Error())
585 return nil 586 return nil
586 } 587 }
587 defer bns.Close() 588 defer bns.Close()
588 for bns.Next() { 589 for bns.Next() {
589 var nid int64 590 var nid int64
591 return err 592 return err
592 } 593 }
593 bnIds = append(bnIds, nid) 594 bnIds = append(bnIds, nid)
594 } 595 }
595 if err := bns.Err(); err != nil { 596 if err := bns.Err(); err != nil {
596 feedback.Warn(handleError(err).Error()) 597 feedback.Warn(pgxutils.HandleError(err).Error())
597 return nil 598 return nil
598 } 599 }
599 if len(bnIds) == 0 { 600 if len(bnIds) == 0 {
600 feedback.Warn( 601 feedback.Warn(
601 "No gauge matching '%s' or given time available", bn.Fk_g_fid) 602 "No gauge matching '%s' or given time available", bn.Fk_g_fid)
608 if _, err = tx.StmtContext(ctx, deleteObsoleteBNStmt).ExecContext(ctx, 609 if _, err = tx.StmtContext(ctx, deleteObsoleteBNStmt).ExecContext(ctx,
609 bn.Bottleneck_id, 610 bn.Bottleneck_id,
610 &validity, 611 &validity,
611 &pgBnIds, 612 &pgBnIds,
612 ); err != nil { 613 ); err != nil {
613 feedback.Warn(handleError(err).Error()) 614 feedback.Warn(pgxutils.HandleError(err).Error())
614 if err2 := tx.Rollback(); err2 != nil { 615 if err2 := tx.Rollback(); err2 != nil {
615 return err2 616 return err2
616 } 617 }
617 return nil 618 return nil
618 } 619 }
621 // in case of overlap 622 // in case of overlap
622 if _, err = tx.StmtContext(ctx, fixValidityStmt).ExecContext(ctx, 623 if _, err = tx.StmtContext(ctx, fixValidityStmt).ExecContext(ctx,
623 bn.Bottleneck_id, 624 bn.Bottleneck_id,
624 validity, 625 validity,
625 ); err != nil { 626 ); err != nil {
626 feedback.Warn(handleError(err).Error()) 627 feedback.Warn(pgxutils.HandleError(err).Error())
627 if err2 := tx.Rollback(); err2 != nil { 628 if err2 := tx.Rollback(); err2 != nil {
628 return err2 629 return err2
629 } 630 }
630 return nil 631 return nil
631 } 632 }
658 if _, err := tx.StmtContext(ctx, insertMaterialStmt).ExecContext(ctx, 659 if _, err := tx.StmtContext(ctx, insertMaterialStmt).ExecContext(ctx,
659 &pgBnIds, 660 &pgBnIds,
660 &pgMaterials, 661 &pgMaterials,
661 ); err != nil { 662 ); err != nil {
662 feedback.Warn("Failed to insert riverbed materials") 663 feedback.Warn("Failed to insert riverbed materials")
663 feedback.Warn(handleError(err).Error()) 664 feedback.Warn(pgxutils.HandleError(err).Error())
664 return nil 665 return nil
665 } 666 }
666 } 667 }
667 668
668 // Only add new BN data to tracking for staging review. 669 // Only add new BN data to tracking for staging review.