comparison pkg/controllers/gauges.go @ 3190:54a3e40cfbed

controllers: moved filter builder to a separate file.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 08 May 2019 10:50:14 +0200
parents 41ed69dbf9bb
children eeff2cc4ff9d
comparison
equal deleted inserted replaced
3189:6f8fb2053881 3190:54a3e40cfbed
629 } 629 }
630 630
631 var fb filterBuilder 631 var fb filterBuilder
632 fb.stmt.WriteString(selectWaterlevelsSQL) 632 fb.stmt.WriteString(selectWaterlevelsSQL)
633 633
634 fb.cond( 634 fb.and(
635 " fk_gauge_id = ($%d::char(2), $%d::char(3), $%d::char(5), $%d::char(5), $%d::int) ", 635 " fk_gauge_id = ($%d::char(2), $%d::char(3), $%d::char(5), $%d::char(5), $%d::int) ",
636 isrs.CountryCode, 636 isrs.CountryCode,
637 isrs.LoCode, 637 isrs.LoCode,
638 isrs.FairwaySection, 638 isrs.FairwaySection,
639 isrs.Orc, 639 isrs.Orc,
640 isrs.Hectometre, 640 isrs.Hectometre,
641 ) 641 )
642 642
643 fb.cond( 643 fb.and(
644 `(NOT predicted 644 `(NOT predicted
645 OR ( 645 OR (
646 date_issue = ( 646 date_issue = (
647 SELECT max(date_issue) FROM waterway.gauge_measurements 647 SELECT max(date_issue) FROM waterway.gauge_measurements
648 WHERE fk_gauge_id = ($%d::char(2), $%d::char(3), $%d::char(5), $%d::char(5), $%d::int) 648 WHERE fk_gauge_id = ($%d::char(2), $%d::char(3), $%d::char(5), $%d::char(5), $%d::int)
661 http.Error( 661 http.Error(
662 rw, fmt.Sprintf("error: Invalid from time: %v", err), 662 rw, fmt.Sprintf("error: Invalid from time: %v", err),
663 http.StatusBadRequest) 663 http.StatusBadRequest)
664 return 664 return
665 } 665 }
666 fb.cond("measure_date >= $%d", fromTime) 666 fb.and("measure_date >= $%d", fromTime)
667 } 667 }
668 668
669 if to := req.FormValue("to"); to != "" { 669 if to := req.FormValue("to"); to != "" {
670 toTime, err := time.Parse(models.ImportTimeFormat, to) 670 toTime, err := time.Parse(models.ImportTimeFormat, to)
671 if err != nil { 671 if err != nil {
672 http.Error( 672 http.Error(
673 rw, fmt.Sprintf("error: Invalid from time: %v", err), 673 rw, fmt.Sprintf("error: Invalid from time: %v", err),
674 http.StatusBadRequest) 674 http.StatusBadRequest)
675 return 675 return
676 } 676 }
677 fb.cond("measure_date <= $%d", toTime) 677 fb.and("measure_date <= $%d", toTime)
678 } 678 }
679 679
680 conn := middleware.GetDBConn(req) 680 conn := middleware.GetDBConn(req)
681 681
682 ctx := req.Context() 682 ctx := req.Context()