Mercurial > gemma
view pkg/models/gauge.go @ 1755:d3fe20a13339
Import: Filter fairway availabilities by period and resolve insert confilcts.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 10 Jan 2019 16:43:42 +0100 |
parents | 49e047c2106e |
children | 6a67cd819e93 |
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): // * Raimund Renkert <raimund.renkert@intevation.de> package models import ( "errors" "fmt" "strconv" "time" "gemma.intevation.de/gemma/pkg/common" ) // GaugeMeasurementImport contains data used to define the endpoint type GaugeMeasurementImport struct { URL string `json:"url"` Insecure bool `json:"insecure"` SendEmail bool `json:"send-email"` // Attributes are optional attributes. Attributes common.Attributes `json:"attributes,omitempty"` } // GaugeMeasurement holds information about a gauge and the latest measurement type GaugeMeasurement struct { Gauge Isrs LatestDateIssue time.Time } // Isrs represents the gauge identification data structure type Isrs struct { CountryCode string LoCode string FairwaySection string Orc string Hectometre int } // IsrsFromString converts string representation of isrs code to type Isrs func IsrsFromString(isrsCode string) (*Isrs, error) { if len(isrsCode) < 20 { return nil, errors.New("ISRS code too short") } hm, err := strconv.Atoi(isrsCode[15:20]) if err != nil { return nil, err } isrs := Isrs{ CountryCode: isrsCode[0:2], LoCode: isrsCode[2:5], FairwaySection: isrsCode[5:10], Orc: isrsCode[10:15], Hectometre: hm, } return &isrs, nil } // String creates a isrs code string from Isrs func (isrs *Isrs) String() string { return fmt.Sprintf("%s%s%s%s%05d", isrs.CountryCode, isrs.LoCode, isrs.FairwaySection, isrs.Orc, isrs.Hectometre) }