docs: private HttpRequest buildHTTPRequest(final Query<?, ?> query) {
  		final String url = API_ENDPOINT + query.getPath();
  
  		HttpRequest request;
  		switch (query.getHttpRequestMethod()) {
  			case GET:
  				request = Unirest.get(url);
  
  				if ((query.getQueryParameters() != null) && !query.getQueryParameters().isEmpty()) {
  					((GetRequest) request).queryString(query.getQueryParameters());
  				}
  
  				break;
  
  			case POST:
  				request = Unirest.post(url);
  
  				if ((query.getQueryParameters() != null) && !query.getQueryParameters().isEmpty()) {
  					((HttpRequestWithBody) request).fields(query.getQueryParameters());
  				}
  
  				break;
  
  			default:
  				request = Unirest.get(url);
  		}
  
  		/*
  		 * Add any named route parameters to the request (i.e. elements used to build the URI, such as
  		 * '/sound/{sound_id}' would have a parameter named 'sound_id').
  		 */
  		if ((query.getRouteParameters() != null) && !query.getRouteParameters().isEmpty()) {
  			for (final Entry<String, String> routeParameter : query.getRouteParameters().entrySet()) {
  				request.routeParam(routeParameter.getKey(), routeParameter.getValue());
  			}
  		}
  
  		return request;
  	}