Mercurial > gemma
view pkg/imports/ugm.go @ 2246:2cba13653a58
Upload gauge measurements: Fixed typo.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 13 Feb 2019 16:13:44 +0100 |
parents | 7d784840a9a7 |
children | 35db2e11c966 |
line wrap: on
line source
// This is Free Software under GNU Affero General Public License v >= 3.0 // without warranty, see README.md and license for details. // // SPDX-License-Identifier: AGPL-3.0-or-later // License-Filename: LICENSES/AGPL-3.0.txt // // Copyright (C) 2018 by via donau // – Österreichische Wasserstraßen-Gesellschaft mbH // Software engineering by Intevation GmbH // // Author(s): // * Sascha L. Teichmann <sascha.teichmann@intevation.de> package imports import ( "context" "database/sql" "errors" "os" "path/filepath" "gemma.intevation.de/gemma/pkg/soap" "gemma.intevation.de/gemma/pkg/soap/nts" ) type UploadGaugeMeasurement struct { Dir string `json:"dir"` } const UGMJobKind JobKind = "ugm" type ugmJobCreator struct{} func init() { RegisterJobCreator(UGMJobKind, ugmJobCreator{}) } func (ugmJobCreator) Description() string { return "uploaded gauge measurements" } func (ugmJobCreator) Create() Job { return new(UploadGaugeMeasurement) } func (ugmJobCreator) Depends() []string { return gmJobCreator{}.Depends() } func (ugmJobCreator) AutoAccept() bool { return true } func (ugmJobCreator) StageDone(context.Context, *sql.Tx, int64) error { return nil } func (ugm *UploadGaugeMeasurement) CleanUp() error { return os.RemoveAll(ugm.Dir) } // Do executes the actual bottleneck import. func (ugm *UploadGaugeMeasurement) Do( ctx context.Context, importID int64, conn *sql.Conn, feedback Feedback, ) (interface{}, error) { fetch := func() ([]*nts.RIS_Message_Type, error) { var dst nts.Get_messages_result if err := soap.ValidateFile( filepath.Join(ugm.Dir, "data.xml"), "NtS_XSD_V.4.0.4.0.xsd", &dst, ); err != nil { return nil, err } result := dst.Result_message if len(result) == 0 { return nil, errors.New("No gauge measurements found") } return result, nil } return storeGaugeMeasurements( ctx, importID, fetch, conn, feedback, ) }