view pkg/controllers/surveys.go @ 854:83c271cb2344

Reverted fcb38cedc680 (More tightened color model.) The get request did no longer work: HTTP/1.1 500 Internal Server Error Content-Type: text/plain; charset=utf-8 X-Content-Type-Options: nosniff Date: Fri, 28 Sep 2018 11:47:14 GMT Content-Length: 65 error: sql: Scan error on column index 3: Unexpected type string
author Sascha Wilde <wilde@intevation.de>
date Fri, 28 Sep 2018 13:54:57 +0200
parents a5452a001b46
children a244b18cb916
line wrap: on
line source

package controllers

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

	"gemma.intevation.de/gemma/pkg/models"
	"github.com/gorilla/mux"
)

const (
	listSurveysSQL = `SELECT s.bottleneck_id,
                                 s.date_info::text
FROM waterway.bottlenecks b, waterway.sounding_results s
WHERE b.objnam=$1 AND s.bottleneck_id = b.bottleneck_id;`
)

func listSurveys(
	_ interface{},
	req *http.Request,
	db *sql.Conn,
) (jr JSONResult, err error) {

	bottleneckName := mux.Vars(req)["bottleneck"]

	var rows *sql.Rows

	rows, err = db.QueryContext(req.Context(), listSurveysSQL, bottleneckName)
	if err != nil {
		return
	}
	defer rows.Close()

	surveys := []models.Survey{}

	for rows.Next() {
		var survey models.Survey
		if err = rows.Scan(
			&survey.BottleneckId,
			&survey.DateInfo,
		); err != nil {
			return
		}
		surveys = append(surveys, survey)
	}

	if err = rows.Err(); err != nil {
		return
	}

	jr = JSONResult{
		Result: struct {
			Surveys []models.Survey `json:"surveys"`
		}{surveys},
	}
	return
}