Mercurial > gemma
view pkg/models/importbase.go @ 2016:25967829cf00 unify_imports
Started to simplify the import models.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 24 Jan 2019 17:14:10 +0100 |
parents | |
children | 070ac9dd61a1 |
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 models import ( "encoding/json" "time" "github.com/robfig/cron" ) type ( // CronSpec is a string containing a cron line. CronSpec string QueueConfigurationType struct { Trys *int `json:"trys,omitempty"` WaitRetry *time.Duration `json:"wait-retry,omitempty"` Cron *CronSpec `json:"cron,omitempty"` EMail bool `json:"send-email,omitempty"` } QueueConfigurationGetter interface { GetQueueConfiguration() *QueueConfigurationType } URLType struct { URL string `json:"url"` Insecure bool `json:"insecure,omitempty"` User *string `json:"user,omitempty"` Password *string `json:"password,omitempty"` } URLTypeGetter interface { GetURLType() *URLType } ) func (qct *QueueConfigurationType) GetQueueConfiguration() *QueueConfigurationType { return qct } func (ut *URLType) GetURLType() *URLType { return ut } // UnmarshalJSON checks if the incoming string is a valid cron line. func (cs *CronSpec) UnmarshalJSON(data []byte) error { var spec string if err := json.Unmarshal(data, &spec); err != nil { return err } if _, err := cron.Parse(spec); err != nil { return err } *cs = CronSpec(spec) return nil }