comparison pkg/controllers/gmimports.go @ 1637:dd31be75ce6d

Implemented gauge measurement import.
author Raimund Renkert <raimund.renkert@intevation.de>
date Thu, 20 Dec 2018 12:06:37 +0100
parents
children 49c04bb64e0a
comparison
equal deleted inserted replaced
1636:37ee25bc2bbe 1637:dd31be75ce6d
1 // This is Free Software under GNU Affero General Public License v >= 3.0
2 // without warranty, see README.md and license for details.
3 //
4 // SPDX-License-Identifier: AGPL-3.0-or-later
5 // License-Filename: LICENSES/AGPL-3.0.txt
6 //
7 // Copyright (C) 2018 by via donau
8 // – Österreichische Wasserstraßen-Gesellschaft mbH
9 // Software engineering by Intevation GmbH
10 //
11 // Author(s):
12 // * Raimund Renkert <raimund.renkert@intevation.de>
13
14 package controllers
15
16 import (
17 "database/sql"
18 "log"
19 "net/http"
20
21 "gemma.intevation.de/gemma/pkg/auth"
22 "gemma.intevation.de/gemma/pkg/common"
23 "gemma.intevation.de/gemma/pkg/imports"
24 "gemma.intevation.de/gemma/pkg/models"
25 )
26
27 func importGaugeMeasurement(
28 input interface{},
29 req *http.Request,
30 conn *sql.Conn,
31 ) (jr JSONResult, err error) {
32
33 bi := input.(*models.GaugeMeasurementImport)
34
35 bn := &imports.GaugeMeasurement{
36 URL: bi.URL,
37 Insecure: bi.Insecure,
38 }
39
40 var serialized string
41 serialized, err = common.ToJSONString(bn)
42 if err != nil {
43 return
44 }
45
46 session, _ := auth.GetSession(req)
47
48 jobID, err := imports.AddJob(imports.GMJobKind, session.User, serialized)
49 if err != nil {
50 return
51 }
52
53 log.Printf("info: added import #%d to queue\n", jobID)
54
55 result := struct {
56 ID int64 `json:"id"`
57 }{
58 ID: jobID,
59 }
60
61 jr = JSONResult{
62 Code: http.StatusCreated,
63 Result: &result,
64 }
65 return
66 }