Mercurial > gemma
diff pkg/models/import.go @ 1023:337a7f4c8a16
Add endpoint to list all or some import jobs.
Unpaged path: /api/imports
Paged path: /api/imports?offset=[0-9+]&limit=[0-9]+
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 24 Oct 2018 12:24:26 +0200 |
parents | |
children | 3de54d7b7d30 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkg/models/import.go Wed Oct 24 12:24:26 2018 +0200 @@ -0,0 +1,45 @@ +// 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" +) + +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"` + } +) + +func (it ImportTime) MarshalJSON() ([]byte, error) { + return json.Marshal(it.Format("2006-01-02T15:04:05")) +} + +func (it *ImportTime) Scan(x interface{}) error { + t, ok := x.(time.Time) + if !ok { + *it = ImportTime{} + } else { + *it = ImportTime{t} + } + return nil +}