comparison pkg/controllers/importqueue.go @ 1392:0e1d89241cda

Imports: An Import (e.g. a sounding result import) can now write a 'summary' of a successful import. This is done if the import switches to to state 'pending'.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 28 Nov 2018 09:52:34 +0100
parents 3ff916e853d4
children 5e1218b5a123
comparison
equal deleted inserted replaced
1391:801ae5f4bc5b 1392:0e1d89241cda
13 13
14 package controllers 14 package controllers
15 15
16 import ( 16 import (
17 "database/sql" 17 "database/sql"
18 "encoding/json"
18 "fmt" 19 "fmt"
19 "log" 20 "log"
20 "net/http" 21 "net/http"
21 "strconv" 22 "strconv"
22 "strings" 23 "strings"
23 24
25 "github.com/gorilla/mux"
26 "github.com/jackc/pgx/pgtype"
27
24 "gemma.intevation.de/gemma/pkg/auth" 28 "gemma.intevation.de/gemma/pkg/auth"
25 "gemma.intevation.de/gemma/pkg/imports" 29 "gemma.intevation.de/gemma/pkg/imports"
26 "gemma.intevation.de/gemma/pkg/models" 30 "gemma.intevation.de/gemma/pkg/models"
27 "github.com/gorilla/mux"
28 "github.com/jackc/pgx/pgtype"
29 ) 31 )
30 32
31 const ( 33 const (
32 selectImportsSQL = ` 34 selectImportsSQL = `
33 SELECT 35 SELECT
34 id, 36 id,
35 state::varchar, 37 state::varchar,
36 enqueued, 38 enqueued,
37 kind, 39 kind,
38 username, 40 username,
39 signer 41 signer,
42 summary
40 FROM waterway.imports 43 FROM waterway.imports
41 ` 44 `
42 45
43 selectHasImportSQL = ` 46 selectHasImportSQL = `
44 SELECT true FROM Waterway.imports WHERE id = $1` 47 SELECT true FROM Waterway.imports WHERE id = $1`
164 } 167 }
165 defer rows.Close() 168 defer rows.Close()
166 169
167 imports := make([]*models.Import, 0, 20) 170 imports := make([]*models.Import, 0, 20)
168 171
169 var signer sql.NullString 172 var signer, summary sql.NullString
170 173
171 for rows.Next() { 174 for rows.Next() {
172 var it models.Import 175 var it models.Import
173 if err = rows.Scan( 176 if err = rows.Scan(
174 &it.ID, 177 &it.ID,
175 &it.State, 178 &it.State,
176 &it.Enqueued, 179 &it.Enqueued,
177 &it.Kind, 180 &it.Kind,
178 &it.User, 181 &it.User,
179 &signer, 182 &signer,
183 &summary,
180 ); err != nil { 184 ); err != nil {
181 return 185 return
182 } 186 }
183 if signer.Valid { 187 if signer.Valid {
184 it.Signer = signer.String 188 it.Signer = signer.String
189 }
190 if summary.Valid {
191 if err = json.NewDecoder(
192 strings.NewReader(summary.String)).Decode(&it.Summary); err != nil {
193 return
194 }
185 } 195 }
186 imports = append(imports, &it) 196 imports = append(imports, &it)
187 } 197 }
188 198
189 if err = rows.Err(); err != nil { 199 if err = rows.Err(); err != nil {