Version zu Ende April 2023
This commit is contained in:
76
goDataverse/search/search.go
Normal file
76
goDataverse/search/search.go
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
= 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
|
||||
}
|
||||
Reference in New Issue
Block a user