Mercurial > gemma
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 { |