/// <summary> /// Makes a request to the API. /// </summary> /// <param name="requestData">The API request data.</param> /// <returns> /// An API response data object. /// </returns> public async Task <ApiResponseDto> MakeApiRequest(ApiRequestDto requestData) { var httpClient = new HttpClient(); var url = BuildUrl(requestData.Host, requestData.Version, requestData.EndpointId, requestData.ApiKey, requestData.Ssl); switch (requestData.Verb) { case HttpVerb.Get: { return(await ProcessApiResponse(await httpClient.GetAsync(url))); } case HttpVerb.Post: { var httpContent = new StringContent(requestData.FilterXml, Encoding.UTF8, "application/xml"); return(await ProcessApiResponse(await httpClient.PostAsync(url, httpContent))); } default: { throw new ArgumentException("Invalid HTTP Verb."); } } }
public AnsibleTowerInstance(string name, string circuitBreakerName, string apiUrlBase, string version, ApiRequestDto apiRequestDto) { ApiDefinition = apiRequestDto; Name = name; CircuitBreakerName = circuitBreakerName; ApiUrlBase = apiUrlBase; Version = version; }
public async Task <IActionResult> HandleInputRequest( [HttpTrigger(AuthorizationLevel.Function, "post", Route = "input")] ApiRequestDto input, HttpRequest req, [DurableClient] IDurableOrchestrationClient orchestrationClient) { var instanceId = await orchestrationClient.StartNewAsync(nameof(RequestProcessorDurableFunctions.HandleRequest), input); return(orchestrationClient.CreateCheckStatusResponse(req, instanceId)); }
public AnsibleTowerInstance(string name, string circuitBreakerName, string apiUrlBase, string version, ApiRequestDto apiRequestDto, string username, string password) { ApiDefinition = apiRequestDto; Name = name; CircuitBreakerName = circuitBreakerName; ApiUrlBase = apiUrlBase; Version = version; Username = username; Password = password; }
/// <summary> /// Click Event Handler for the Send Request button. /// </summary> /// <param name="sender">The control raising the event.</param> /// <param name="e">The event data.</param> private async void btnSendRequest_Click(object sender, EventArgs e) { try { //Show wait cursor and disable Send Request button. Cursor.Current = Cursors.WaitCursor; btnSendRequest.Enabled = false; //Populate request DTO to send to request service. var apiRequest = new ApiRequestDto { ApiKey = txtApiKey.Text, EndpointId = (int)cmbEndpoint.SelectedValue, Verb = (HttpVerb)cmbHttpVerb.SelectedItem, Version = cmbApiVersion.Text, Host = txtHost.Text, Ssl = chkUseSsl.Checked, FilterXml = txtFilterXML.Text }; //Call request service to make API request. var apiResponse = await _requestService.MakeApiRequest(apiRequest); //Process API response in response form. _responseForm.ProcessResponse(apiResponse); //Show response form. _responseForm.ShowDialog(this); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { //Show default cursor and enable Send Request button. Cursor.Current = Cursors.Default; btnSendRequest.Enabled = true; } }