Mercurial > gemma
comparison pkg/imports/bn.go @ 4071:5867dcf8e93c
Introduced a new ReadableError type for better readable error messages of pgx.PgErrors.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 25 Jul 2019 13:31:51 +0200 |
parents | fe3dd65c0891 |
children | af2b20d6c921 3d2f02c16765 |
comparison
equal
deleted
inserted
replaced
4065:6ebe42af392d | 4071:5867dcf8e93c |
---|---|
589 bn.Source, | 589 bn.Source, |
590 tolerance, | 590 tolerance, |
591 ) | 591 ) |
592 } | 592 } |
593 if err != nil { | 593 if err != nil { |
594 feedback.Warn(pgxutils.HandleError(err).Error()) | 594 feedback.Warn(pgxutils.ReadableError{err}.Error()) |
595 return nil | 595 return nil |
596 } | 596 } |
597 defer bns.Close() | 597 defer bns.Close() |
598 for bns.Next() { | 598 for bns.Next() { |
599 var nid int64 | 599 var nid int64 |
601 return err | 601 return err |
602 } | 602 } |
603 bnIds = append(bnIds, nid) | 603 bnIds = append(bnIds, nid) |
604 } | 604 } |
605 if err := bns.Err(); err != nil { | 605 if err := bns.Err(); err != nil { |
606 feedback.Warn(pgxutils.HandleError(err).Error()) | 606 feedback.Warn(pgxutils.ReadableError{err}.Error()) |
607 return nil | 607 return nil |
608 } | 608 } |
609 if len(bnIds) == 0 { | 609 if len(bnIds) == 0 { |
610 feedback.Warn( | 610 feedback.Warn( |
611 "No gauge matching '%s' or given time available", bn.Fk_g_fid) | 611 "No gauge matching '%s' or given time available", bn.Fk_g_fid) |
618 if _, err = tx.StmtContext(ctx, deleteObsoleteBNStmt).ExecContext(ctx, | 618 if _, err = tx.StmtContext(ctx, deleteObsoleteBNStmt).ExecContext(ctx, |
619 bn.Bottleneck_id, | 619 bn.Bottleneck_id, |
620 &validity, | 620 &validity, |
621 &pgBnIds, | 621 &pgBnIds, |
622 ); err != nil { | 622 ); err != nil { |
623 feedback.Warn(pgxutils.HandleError(err).Error()) | 623 feedback.Warn(pgxutils.ReadableError{err}.Error()) |
624 if err2 := tx.Rollback(); err2 != nil { | 624 if err2 := tx.Rollback(); err2 != nil { |
625 return err2 | 625 return err2 |
626 } | 626 } |
627 return nil | 627 return nil |
628 } | 628 } |
631 // in case of overlap | 631 // in case of overlap |
632 if _, err = tx.StmtContext(ctx, fixValidityStmt).ExecContext(ctx, | 632 if _, err = tx.StmtContext(ctx, fixValidityStmt).ExecContext(ctx, |
633 bn.Bottleneck_id, | 633 bn.Bottleneck_id, |
634 validity, | 634 validity, |
635 ); err != nil { | 635 ); err != nil { |
636 feedback.Warn(pgxutils.HandleError(err).Error()) | 636 feedback.Warn(pgxutils.ReadableError{err}.Error()) |
637 if err2 := tx.Rollback(); err2 != nil { | 637 if err2 := tx.Rollback(); err2 != nil { |
638 return err2 | 638 return err2 |
639 } | 639 } |
640 return nil | 640 return nil |
641 } | 641 } |
668 if _, err := tx.StmtContext(ctx, insertMaterialStmt).ExecContext(ctx, | 668 if _, err := tx.StmtContext(ctx, insertMaterialStmt).ExecContext(ctx, |
669 &pgBnIds, | 669 &pgBnIds, |
670 &pgMaterials, | 670 &pgMaterials, |
671 ); err != nil { | 671 ); err != nil { |
672 feedback.Warn("Failed to insert riverbed materials") | 672 feedback.Warn("Failed to insert riverbed materials") |
673 feedback.Warn(pgxutils.HandleError(err).Error()) | 673 feedback.Warn(pgxutils.ReadableError{err}.Error()) |
674 return nil | 674 return nil |
675 } | 675 } |
676 } | 676 } |
677 | 677 |
678 // Only add new BN data to tracking for staging review. | 678 // Only add new BN data to tracking for staging review. |