mirror of
				https://github.com/Jermolene/TiddlyWiki5
				synced 2025-10-30 23:23:02 +00:00 
			
		
		
		
	Add query string support for tm-http-request
This commit is contained in:
		| @@ -32,7 +32,9 @@ HttpClient.prototype.handleHttpRequest = function(event) { | ||||
| 		bindProgress = paramObject["bind-progress"], | ||||
| 		method = paramObject.method || "GET", | ||||
| 		HEADER_PARAMETER_PREFIX = "header-", | ||||
| 		QUERY_PARAMETER_PREFIX = "query-", | ||||
| 		PASSWORD_HEADER_PARAMETER_PREFIX = "password-header-", | ||||
| 		PASSWORD_QUERY_PARAMETER_PREFIX = "password-query-", | ||||
| 		CONTEXT_VARIABLE_PARAMETER_PREFIX = "var-", | ||||
| 		requestHeaders = {}, | ||||
| 		contextVariables = {}, | ||||
| @@ -45,11 +47,19 @@ HttpClient.prototype.handleHttpRequest = function(event) { | ||||
| 		setBinding(bindStatus,"pending"); | ||||
| 		setBinding(bindProgress,"0"); | ||||
| 		$tw.utils.each(paramObject,function(value,name) { | ||||
| 			// Look for query- parameters | ||||
| 			if(name.substr(0,QUERY_PARAMETER_PREFIX.length) === QUERY_PARAMETER_PREFIX) { | ||||
| 				url = $tw.utils.setQueryStringParameter(url,name.substr(QUERY_PARAMETER_PREFIX.length),value); | ||||
| 			} | ||||
| 			// Look for header- parameters | ||||
| 			if(name.substr(0,HEADER_PARAMETER_PREFIX.length) === HEADER_PARAMETER_PREFIX) { | ||||
| 				requestHeaders[name.substr(HEADER_PARAMETER_PREFIX.length)] = value; | ||||
| 			} | ||||
| 			// Look for password-header- parameters | ||||
| 			if(name.substr(0,PASSWORD_QUERY_PARAMETER_PREFIX.length) === PASSWORD_QUERY_PARAMETER_PREFIX) { | ||||
| 				url = $tw.utils.setQueryStringParameter(url,name.substr(PASSWORD_QUERY_PARAMETER_PREFIX.length),$tw.utils.getPassword(value) || ""); | ||||
| 			} | ||||
| 			// Look for password-query- parameters | ||||
| 			if(name.substr(0,PASSWORD_HEADER_PARAMETER_PREFIX.length) === PASSWORD_HEADER_PARAMETER_PREFIX) { | ||||
| 				requestHeaders[name.substr(PASSWORD_HEADER_PARAMETER_PREFIX.length)] = $tw.utils.getPassword(value) || ""; | ||||
| 			} | ||||
| @@ -201,4 +211,19 @@ exports.httpRequest = function(options) { | ||||
| 	return request; | ||||
| }; | ||||
|  | ||||
| exports.setQueryStringParameter = function(url,paramName,paramValue) { | ||||
| 	var URL = $tw.browser ? window.URL : require("url").URL, | ||||
| 		newUrl; | ||||
| 	try { | ||||
| 		newUrl = new URL(url); | ||||
| 	} catch(e) { | ||||
| 	} | ||||
| 	if(newUrl && paramName) { | ||||
| 		newUrl.searchParams.set(paramName,paramValue || ""); | ||||
| 		return newUrl.toString(); | ||||
| 	} else { | ||||
| 		return url; | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| })(); | ||||
|   | ||||
| @@ -18,8 +18,10 @@ The following parameters are used: | ||||
| |!Name |!Description | | ||||
| |method |HTTP method (eg "GET", "POST") | | ||||
| |body |String data to be sent with the request | | ||||
| |header-* |Headers with string values| | ||||
| |query-* |Query string parameters with string values | | ||||
| |header-* |Headers with string values | | ||||
| |password-header-* |Headers with values taken from the password store | | ||||
| |password-query-* |Query string parameters with values taken from the password store | | ||||
| |var-* |Variables to be passed to the completion and progress handlers (without the "var-" prefix) | | ||||
| |bind-status |Title of tiddler to which the status of the request ("pending", "complete", "error") should be bound | | ||||
| |bind-progress |Title of tiddler to which the progress of the request (0 to 100) should be bound | | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 jeremy@jermolene.com
					jeremy@jermolene.com