view pkg/controllers/search.go @ 5127:2dcfab23dc86

Removed no longer used endpoint /bottlenecks
author Sascha Wilde <wilde@intevation.de>
date Fri, 27 Mar 2020 10:33:39 +0100
parents e020e6e34ad7
children a6e5bb85f0a7
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 Wilde <sascha.wilde@intevation.de>
//  * Sascha Teichmann <sascha.teichmann@intevation.de>

package controllers

import (
	"net/http"
	"strings"

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

	mw "gemma.intevation.de/gemma/pkg/middleware"
)

const (
	searchMostSQL = `SELECT search_most($1)::text`
)

func searchFeature(req *http.Request) (jr mw.JSONResult, err error) {

	s := mw.JSONInput(req).(*models.SearchRequest)

	if len(s.SearchString) == 0 {
		err = mw.JSONError{
			Code:    http.StatusBadRequest,
			Message: "error: empty search string",
		}
		return
	}

	var result string
	err = mw.JSONConn(req).QueryRowContext(
		req.Context(),
		searchMostSQL,
		s.SearchString,
	).Scan(&result)

	if err != nil {
		return
	}

	jr.Result = strings.NewReader(result)
	return
}