Mercurial > gemma
view pkg/models/import.go @ 1965:f845236e76bd
Translated using Weblate (Bulgarian)
Currently translated at 2.7% (6 of 221 strings)
Translation: Gemma/client
Translate-URL: https://hosted.weblate.org/projects/gemma/client/bg/
author | Fadi Abbud <fadi.abbud@intevation.de> |
---|---|
date | Wed, 23 Jan 2019 09:38:17 +0000 |
parents | ccf4fc8a6402 |
children | 20d9b71f4125 |
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" "errors" "time" ) type ( ImportTime struct{ time.Time } Import struct { ID int64 `json:"id"` State string `json:"state"` Enqueued ImportTime `json:"enqueued"` Kind string `json:"kind"` User string `json:"user"` Signer string `json:"signer,omitempty"` Summary interface{} `json:"summary,omitempty"` } ImportLogEntry struct { Time ImportTime `json:"time"` Kind string `json:"kind"` Message string `json:"message"` } ReviewState string Review struct { ID int64 `json:"id"` State ReviewState `json:"state"` } ) var errInvalidReviewState = errors.New("state is wether 'accepted' nor 'declined'") func (rs *ReviewState) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { return err } if s != "accepted" && s != "declined" { return errInvalidReviewState } *rs = ReviewState(s) return nil } func (it ImportTime) MarshalJSON() ([]byte, error) { return json.Marshal(it.Format("2006-01-02T15:04:05.000")) } func (it *ImportTime) Scan(x interface{}) error { t, ok := x.(time.Time) if !ok { *it = ImportTime{} } else { *it = ImportTime{t} } return nil }