view pkg/controllers/publish.go @ 3402:c04b1409a596

Fix adaptation of gauge temporal validity The necessity to update validity implies the new value has to cascade through to referencing columns. Because measurements falling into the validity of a new version might have been already imported, a deadlock situation might occur with the CHECK constraint on gauge_measurements preventing an update of validity and the exclusion constraint on gauges preventing the insertion of a new version before the update. Thus, the exclusion constraint is now deferred and cannot longer be used with ON CONFLICT in the INSERT statement. Gauge measurements matching the validity of a new gauge version are now 'moved' to that new version before the validity of the old version is adapted.
author Tom Gottfried <tom@intevation.de>
date Thu, 23 May 2019 12:27:14 +0200
parents a244b18cb916
children 1458c9b0fdaa
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 controllers

import (
	"database/sql"
	"net/http"

	"gemma.intevation.de/gemma/pkg/models"
)

func published(_ interface{}, req *http.Request, _ *sql.Conn) (jr JSONResult, err error) {
	jr = JSONResult{
		Result: struct {
			Internal []models.IntEntry `json:"internal"`
			External []models.ExtEntry `json:"external"`
		}{
			Internal: models.InternalServices.Filter(models.InternalAll),
			External: models.ExternalServices.Filter(models.ExternalAll),
		},
	}
	return
}