annotate cmd/bottlenecks/main.go @ 575:5484558e1b50

Fixed statements to insert bottlenecks.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 05 Sep 2018 18:11:50 +0200
parents 18c007104106
children d5626dd370a4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package main
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import (
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
4 "database/sql"
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 "flag"
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 "fmt"
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 "log"
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
8 "regexp"
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
9 "strconv"
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
10
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
11 "github.com/jackc/pgx"
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
12 "github.com/jackc/pgx/stdlib"
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 "gemma.intevation.de/gemma/pkg/soap/ifbn"
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 )
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
17 const insertSQL = `INSERT INTO waterway.bottlenecks (
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
18 bottleneck_id,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
19 fk_g_fid,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
20 objnam,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
21 nobjnm,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
22 stretch,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
23 area,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
24 rb,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
25 lb,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
26 responsible_country,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
27 revisiting_time,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
28 limiting,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
29 date_info,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
30 source_organization
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
31 ) VALUES(
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
32 $1,
575
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
33 isrs_fromText($2),
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
34 $3,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
35 $4,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
36 isrsrange(isrs_fromText($5), isrs_fromText($6)),
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
37 ST_MakePolygon(ST_GeomFromText('LINESTRING(0 0,1 0,1 1,0 0)', 4326))::Geography,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
38 $7,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
39 $8,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
40 $9,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
41 $10,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
42 $11,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
43 $12,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
44 $13
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
45 ) ON CONFLICT (bottleneck_id) DO NOTHING`
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
46
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
47 var (
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
48 url = flag.String("url", "", "the IFBN service")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
49 insecure = flag.Bool("insecure", false, "skip SSL verification")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
50 dbhost = flag.String("dbhost", "localhost", "database host")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
51 dbport = flag.Uint("dbport", 5432, "database port")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
52 dbname = flag.String("dbname", "gemma", "database user")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
53 dbuser = flag.String("dbuser", "scott", "database user")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
54 dbpassword = flag.String("dbpw", "tiger", "database password")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
55 dbssl = flag.String("dbssl", "prefer", "database SSL mode")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
56 )
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
58 func run(fn func(*sql.DB) error) error {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
59
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
60 // To ease SSL config ride a bit on parsing.
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
61 cc, err := pgx.ParseConnectionString("sslmode=" + *dbssl)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
62 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
63 return err
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
64 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
65
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
66 // Do the rest manually to allow whitespace in user/password.
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
67 cc.Host = *dbhost
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
68 cc.Port = uint16(*dbport)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
69 cc.User = *dbuser
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
70 cc.Password = *dbpassword
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
71 cc.Database = *dbname
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
72
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
73 db := stdlib.OpenDB(cc)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
74 defer db.Close()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
75
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
76 return fn(db)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
77 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
78
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
79 var rblbRe = regexp.MustCompile(`(..)_(..)`)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
80
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
81 func splitRBLB(s string) (string, string) {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
82 m := rblbRe.FindStringSubmatch(s)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
83 if len(m) == 0 {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
84 return "", ""
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
85 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
86 return m[1], m[2]
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
87 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
88
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
89 func revisitingTime(s string) int {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
90 v, err := strconv.Atoi(s)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
91 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
92 v = 0
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
93 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
94 return v
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
95 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
96
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
97 func main() {
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99 flag.Parse()
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 client := ifbn.NewIBottleneckService(*url, *insecure, nil)
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 req := &ifbn.Export_bn_by_isrs{}
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 resp, err := client.Export_bn_by_isrs(req)
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 if err != nil {
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
107 log.Fatalf("error: %v\n", err)
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108 }
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110 if resp.Export_bn_by_isrsResult == nil {
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
111 return
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112 }
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 bns := resp.Export_bn_by_isrsResult.BottleNeckType
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
115 err = run(func(db *sql.DB) error {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
116
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
117 stmt, err := db.Prepare(insertSQL)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
118 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
119 return err
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
120 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
121 defer stmt.Close()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
122
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
123 tx, err := db.Begin()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
124 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
125 return err
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
126 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
127
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
128 st := tx.Stmt(stmt)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
129
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
130 for i := range bns {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
131 bn := bns[i]
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
132 rb, lb := splitRBLB(bn.Rb_lb)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
133
575
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
134 var limiting, country string
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
135
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
136 if bn.Limiting_factor != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
137 limiting = string(*bn.Limiting_factor)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
138 }
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
139
575
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
140 if bn.Responsible_country != nil {
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
141 country = string(*bn.Responsible_country)
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
142 }
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
143
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
144 fmt.Printf("%s '%s' %s %s\n", bn.Fk_g_fid, bn.OBJNAM, bn.From_ISRS, bn.To_ISRS)
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
145
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
146 if _, err := st.Exec(
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
147 bn.Bottleneck_id,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
148 bn.Fk_g_fid,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
149 bn.OBJNAM,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
150 bn.NOBJNM,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
151 bn.From_ISRS, bn.To_ISRS,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
152 rb,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
153 lb,
575
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
154 country,
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
155 revisitingTime(bn.Revisiting_time),
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
156 limiting,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
157 bn.Date_Info,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
158 bn.Source,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
159 ); err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
160 tx.Rollback()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
161 return err
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
162 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
163 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
164
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
165 return tx.Commit()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
166 })
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
167
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
168 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
169 log.Fatalf("error: %v\n", err)
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
170 }
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
171 }