77 lines
2.9 KiB
Go
77 lines
2.9 KiB
Go
/**
|
|
= Creative Commons Lizenzvertrag =
|
|
Diese Software ist von der archium GmbH, Gera ist lizenziert unter einer Creative Commons Namensnennung - Nicht kommerziell - Keine Bearbeitungen 4.0 International Lizenz. (http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de)
|
|
Individuelle über diese Lizenz hinausgehende Berechtigungen können Sie unter https://archium.org erhalten.
|
|
|
|
= Creative Commons License =
|
|
Software by archium GmbH, Gera is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. (http://creativecommons.org/licenses/by-nc-nd/4.0/)
|
|
Individual permissions beyond the scope of this license may be available at https://archium.org.
|
|
**/
|
|
|
|
package search
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
//
|
|
def "Toolbox/defaults"
|
|
con "Toolbox/goDataverse/connect"
|
|
tol "Toolbox/goDataverse/tools"
|
|
)
|
|
|
|
// #############################################################################
|
|
//
|
|
// der parameter "_q_=xxx" wird vor der abfrage in "q=xxx" umgewandelt. hierbei
|
|
// handelt es sich um einen workaround, der garantiert, dass die
|
|
// parameterreihenfolge bei der übergabe an die abfrage passt.
|
|
// aus diesem grund werden hier auch 2 durchläufe benötigt...
|
|
//
|
|
func SearchByParams(_dvp tol.TDVParams, _params tol.ColMapInt) (string, error) {
|
|
var par tol.ColMapInt = make(tol.ColMapInt, 0)
|
|
var url string = tol.GetSiteUrl(_dvp) + "/api/search?"
|
|
// 1. durchlauf query parameter anhängen
|
|
for _, ival := range _params {
|
|
// log.Println("SearchByParams(param1):", ival)
|
|
for key, val := range ival {
|
|
if key == "_q_" {
|
|
url = url + key + "=" + val
|
|
break
|
|
}
|
|
}
|
|
}
|
|
// 2. durchlauf restliche parameter anhängen
|
|
for _, ival := range _params {
|
|
// log.Println("SearchByParams(param2):", ival)
|
|
for key, val := range ival {
|
|
if key != "_q_" {
|
|
if key != "search" {
|
|
url = url + "&" + key + "=" + val
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// def.LogMessage("", fmt.Sprintf("GetSearchResult(%v) > url: %v", "params", url), def.DEF_loginfo)
|
|
fmt.Printf("GetSearchResult(%v) > url: %v\n", "params", url)
|
|
response, err := con.GetRequestMap(url, par,
|
|
map[string]string{"X-Dataverse-key": tol.GetApiKey(_dvp)})
|
|
//
|
|
return (fmt.Sprintf("%s", response)), err
|
|
}
|
|
|
|
func SearchSimple(_dvp tol.TDVParams, _alias string, _type string, _advanced string) (string, error) {
|
|
var par tol.ColMapInt = make(tol.ColMapInt, 0)
|
|
var url string = tol.GetSiteUrl(_dvp) + "/api/search?q=*%type%%alias%&per_page=1000%advanced%"
|
|
//
|
|
url = strings.ReplaceAll(url, "%alias%", _alias)
|
|
url = strings.ReplaceAll(url, "%type%", _type)
|
|
url = strings.ReplaceAll(url, "%advanced%", _advanced)
|
|
//
|
|
def.LogMessage("", fmt.Sprintf("GetSearchResult(%v) > url: %v", "params", url), def.DEF_logdebg)
|
|
// log.Printf("GetSearchSimple(%v) > url: %v\n", "params", url)
|
|
response, err := con.GetRequestMap(url, par,
|
|
map[string]string{"X-Dataverse-key": tol.GetApiKey(_dvp)})
|
|
//
|
|
return (fmt.Sprintf("%s", response)), err
|
|
}
|