/** = 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 }