annotate pkg/controllers/manualimports.go @ 2025:070ac9dd61a1 unify_imports

Bring manual imports to new import modeling.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 24 Jan 2019 18:19:43 +0100
parents 9c65153bb56e
children 6b9f0fe741dc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1534
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 // This is Free Software under GNU Affero General Public License v >= 3.0
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2 // without warranty, see README.md and license for details.
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 //
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 // SPDX-License-Identifier: AGPL-3.0-or-later
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 // License-Filename: LICENSES/AGPL-3.0.txt
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 //
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 // Copyright (C) 2018 by via donau
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 // – Österreichische Wasserstraßen-Gesellschaft mbH
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 // Software engineering by Intevation GmbH
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 //
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 // Author(s):
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 // * Sascha L. Teichmann <sascha.teichmann@intevation.de>
1667
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
13 // * Raimund Renkert <raimund.renkert@intevation.de>
1534
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 package controllers
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 import (
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 "database/sql"
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 "log"
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 "net/http"
1708
49e047c2106e Imports: Made imports re-runnable if they fail.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1677
diff changeset
21 "time"
1534
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 "gemma.intevation.de/gemma/pkg/auth"
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 "gemma.intevation.de/gemma/pkg/common"
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 "gemma.intevation.de/gemma/pkg/imports"
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 "gemma.intevation.de/gemma/pkg/models"
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 )
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
29 func importBottleneck(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
30 bi := input.(*models.BottleneckImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
31 return &imports.Bottleneck{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
32 URL: bi.URL,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
33 Insecure: bi.Insecure,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
34 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
35 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
36
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
37 func importGaugeMeasurement(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
38 gi := input.(*models.GaugeMeasurementImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
39 return &imports.GaugeMeasurement{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
40 URL: gi.URL,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
41 Insecure: gi.Insecure,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
42 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
43 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
44
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
45 func importFairwayAvailability(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
46 fai := input.(*models.FairwayAvailabilityImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
47 return &imports.FairwayAvailability{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
48 URL: fai.URL,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
49 Insecure: fai.Insecure,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
50 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
51 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
52
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
53 func importWaterwayAxis(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
54 wxi := input.(*models.WaterwayAxisImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
55 return &imports.WaterwayAxis{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
56 URL: wxi.URL,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
57 FeatureType: wxi.FeatureType,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
58 SortBy: wxi.SortBy,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
59 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
60 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
61
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
62 func importWaterwayArea(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
63 wai := input.(*models.WaterwayAreaImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
64 return &imports.WaterwayArea{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
65 URL: wai.URL,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
66 FeatureType: wai.FeatureType,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
67 SortBy: wai.SortBy,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
68 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
69 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
70
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
71 func importWaterwayGauge(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
72 wgi := input.(*models.WaterwayGaugeImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
73 return &imports.WaterwayGauge{
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
74 Username: nilString(wgi.User),
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
75 Password: nilString(wgi.Password),
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
76 Insecure: wgi.Insecure,
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
77 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
78 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
79
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
80 func importDistancemarksVirtual(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
81 dmvi := input.(*models.DistanceMarksVirtualImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
82 return &imports.DistanceMarksVirtual{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
83 URL: dmvi.URL,
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
84 Username: nilString(dmvi.User),
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
85 Password: nilString(dmvi.Password),
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
86 Insecure: dmvi.Insecure,
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
87 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
88 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
89
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
90 func importFairwayDimension(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
91 fdi := input.(*models.FairwayDimensionImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
92 return &imports.FairwayDimension{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
93 URL: fdi.URL,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
94 FeatureType: fdi.FeatureType,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
95 SortBy: fdi.SortBy,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
96 LOS: fdi.LOS,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
97 MinWidth: fdi.MinWidth,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
98 MaxWidth: fdi.MaxWidth,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
99 Depth: fdi.Depth,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
100 SourceOrganization: fdi.SourceOrganization,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
101 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
102 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
103
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
104 func importDistanceMarksAshore(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
105 dmai := input.(*models.DistanceMarksAshoreImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
106 return &imports.DistanceMarksAshore{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
107 URL: dmai.URL,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
108 FeatureType: dmai.FeatureType,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
109 SortBy: dmai.SortBy,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
110 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
111 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
112
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
113 func importStretch(input interface{}) interface{} {
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
114 sti := input.(*models.StretchImport)
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
115 return &imports.Stretch{
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
116 Name: sti.Name,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
117 From: sti.From,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
118 To: sti.To,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
119 ObjNam: sti.ObjNam,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
120 NObjNam: sti.NObjNam,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
121 Source: sti.Source,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
122 Date: sti.Date,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
123 Countries: sti.Countries,
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
124 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
125 }
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
126
1985
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
127 func retry(a common.Attributes) (time.Time, *int, *time.Duration) {
1708
49e047c2106e Imports: Made imports re-runnable if they fail.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1677
diff changeset
128 due, _ := a.Time("due")
1985
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
129 ret, ok := a.Int("retries")
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
130 var retries *int
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
131 if ok {
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
132 retries = &ret
1708
49e047c2106e Imports: Made imports re-runnable if they fail.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1677
diff changeset
133 }
1985
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
134 dur, ok := a.Duration("wait-retry")
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
135 var duration *time.Duration
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
136 if ok {
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
137 duration = &dur
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
138 }
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
139 return due, retries, duration
1708
49e047c2106e Imports: Made imports re-runnable if they fail.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1677
diff changeset
140 }
49e047c2106e Imports: Made imports re-runnable if they fail.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1677
diff changeset
141
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
142 func nilString(s *string) string {
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
143 if s != nil {
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
144 return *s
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
145 }
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
146 return ""
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
147 }
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
148
1667
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
149 func manualImport(
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
150 kind imports.JobKind,
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
151 setup func(interface{}) interface{},
1667
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
152 ) func(interface{}, *http.Request, *sql.Conn) (JSONResult, error) {
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
153
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
154 return func(input interface{}, req *http.Request, _ *sql.Conn) (
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
155 jr JSONResult, err error) {
1534
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
157 what := setup(input)
1667
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
158 var serialized string
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
159 if serialized, err = common.ToJSONString(what); err != nil {
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
160 return
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
161 }
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
162
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
163 var (
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
164 due time.Time
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
165 trys *int
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
166 waitRetry *time.Duration
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
167 email bool
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
168 )
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
169
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
170 if qctg, ok := input.(models.QueueConfigurationGetter); ok {
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
171 qct := qctg.GetQueueConfiguration()
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
172 if qct.Due != nil {
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
173 due = *qct.Due
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
174 }
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
175 trys = qct.Trys
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
176 waitRetry = qct.WaitRetry
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
177 email = qct.EMail
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
178 }
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
179
1667
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
180 session, _ := auth.GetSession(req)
1534
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
181
1667
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
182 var jobID int64
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
183 if jobID, err = imports.AddJob(
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
184 kind,
1985
8eeb0b5eb340 Imports: Made retries and the waiting between the attempts configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1901
diff changeset
185 due,
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
186 trys,
1993
9c65153bb56e Manual import controller: Simplified code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1985
diff changeset
187 waitRetry,
1667
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
188 session.User,
2025
070ac9dd61a1 Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1993
diff changeset
189 email,
1667
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
190 serialized,
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
191 ); err != nil {
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
192 return
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
193 }
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
194
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
195 log.Printf("info: added import #%d to queue\n", jobID)
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
196
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
197 result := struct {
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
198 ID int64 `json:"id"`
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
199 }{
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
200 ID: jobID,
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
201 }
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
202
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
203 jr = JSONResult{
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
204 Code: http.StatusCreated,
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
205 Result: &result,
aaa05d3c4aac Deduplicated code for triggering manual imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1646
diff changeset
206 }
1534
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
207 return
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
208 }
165f31b71042 Bottleneck import: Added /api/imports/bottleneck POST endpoint.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
209 }