#!/usr/bin/env groovy import java.net.URLEncoder Map call(Map config = [:]) { Map defaults = [ nexusBase: 'https://repo.thejimnicholson.com', searchAPI: 'service/rest/v1/search', queryParams: [ 'repository': 'tools', 'sort': 'name', 'name': 'test.something' ] ] Map runConfig = defaults + config nexusSearch = buildUrlWithQueryParams(runConfig.nexusBase, runConfig.queryParams) runConfig.nexusQuery = nexusSearch return runConfig } def buildUrlWithQueryParams(baseUrl, queryParams) { def url = baseUrl if (!queryParams.empty) { def queryParamsString = queryParams.collect { key, value -> "${URLEncoder.encode(key, 'UTF-8')}=${URLEncoder.encode(value, 'UTF-8')}" }.join('&') url += '?' + queryParamsString } return url }