Mercurial > gemma
view pkg/models/scheduler.go @ 1583:caedd9b176f2
Added GET to /api/imports/scheduler.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 13 Dec 2018 18:37:35 +0100 |
parents | dc727824183a |
children | c12cec1d7692 |
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" "fmt" "github.com/robfig/cron" "gemma.intevation.de/gemma/pkg/scheduler" ) type ( CronSpec string ImportKind string ImportConfig struct { Kind ImportKind `json:"kind"` SendEMail bool `json:"send-email"` AutoAccept bool `json:"auto-accept"` Cron *CronSpec `json:"cron"` URL *string `json:"url"` } IDImportConfig struct { ID int64 `json:"id"` Kind ImportKind `json:"kind"` SendEMail bool `json:"send-email"` AutoAccept bool `json:"auto-accept"` Cron *CronSpec `json:"cron,omitempty"` URL *string `json:"url,omitempty"` } ) func (ik *ImportKind) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { return err } if !scheduler.HasAction(s) { return fmt.Errorf("Unknown kind '%s'", s) } *ik = ImportKind(s) return nil } 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 }