Mercurial > gemma
diff pkg/imports/config.go @ 1696:ad5e1cddaa09
Imports: Resolved the remaining golint issues with this package.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 04 Jan 2019 13:41:07 +0100 |
parents | 06f08458d666 |
children | 49b89575ab31 |
line wrap: on
line diff
--- a/pkg/imports/config.go Fri Jan 04 10:00:11 2019 +0100 +++ b/pkg/imports/config.go Fri Jan 04 13:41:07 2019 +0100 @@ -19,22 +19,41 @@ "encoding/json" "fmt" + "github.com/robfig/cron" + "gemma.intevation.de/gemma/pkg/auth" - "github.com/robfig/cron" ) type ( - CronSpec string + // CronSpec is a string containing a cron line. + CronSpec string + + // ImportKind is a string which has to be one + // of the registered import types. ImportKind string + // Config is JSON serialized form of a import configuration. Config struct { - Kind ImportKind `json:"kind"` - SendEMail bool `json:"send-email"` - AutoAccept bool `json:"auto-accept"` - Cron *CronSpec `json:"cron"` - URL *string `json:"url"` + // Kind is the import type. + Kind ImportKind `json:"kind"` + // SendEMail indicates if a mail should be be send + // when the import was changed to states + // 'pending' or 'failed'. + SendEMail bool `json:"send-email"` + // AutoAccept indicates that an import + // automatically will change from state + // 'pending' to state 'accepted'. + AutoAccept bool `json:"auto-accept"` + // Cron is the cron schedule + // of this configuration if this value is not + // nil. If nil the import is not scheduled. + Cron *CronSpec `json:"cron"` + // URL is an optional URL used by the import. + URL *string `json:"url"` } + // IDConfig is the same as Config with an ID. + // Mainly used for server delivered configurations. IDConfig struct { ID int64 `json:"id"` User string `json:"user"` @@ -46,6 +65,8 @@ } ) +// UnmarshalJSON checks if the incoming string +// is a registered import type. func (ik *ImportKind) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { @@ -61,6 +82,8 @@ return nil } +// 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 {