public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] GetJobsByFilterRequest req, CancellationToken cancellationToken) { try { _logger.LogInformation("GetJobsByFilter started"); GetJobsByFilterResponse response = await _mediator.Send(req, cancellationToken); return(new OkObjectResult(ResponseWrapper <GetJobsByFilterResponse, RequestServiceErrorCode> .CreateSuccessfulResponse(response))); } catch (PostCodeException exc) { _logger.LogErrorAndNotifyNewRelic($"{req.Postcode} is an invalid postcode", exc); return(new ObjectResult(ResponseWrapper <GetJobsByFilterResponse, RequestServiceErrorCode> .CreateUnsuccessfulResponse(RequestServiceErrorCode.ValidationError, "Invalid Postcode")) { StatusCode = StatusCodes.Status400BadRequest }); } catch (Exception exc) { _logger.LogErrorAndNotifyNewRelic("Exception occured in GetJobsByFilter", exc); return(new ObjectResult(ResponseWrapper <GetJobsByFilterResponse, RequestServiceErrorCode> .CreateUnsuccessfulResponse(RequestServiceErrorCode.InternalServerError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }
public async Task <GetJobsByFilterResponse> GetJobsByFilter(GetJobsByFilterRequest request) { string path = $"/api/GetJobsByFilter"; using (HttpResponseMessage response = await _httpClientWrapper.GetAsync(HttpClientConfigName.RequestService, path, request, CancellationToken.None).ConfigureAwait(false)) { string jsonResponse = await response.Content.ReadAsStringAsync(); var getJobsResponse = JsonConvert.DeserializeObject <ResponseWrapper <GetJobsByFilterResponse, RequestServiceErrorCode> >(jsonResponse); if (getJobsResponse.HasContent && getJobsResponse.IsSuccessful) { return(getJobsResponse.Content); } else { if (response.StatusCode == System.Net.HttpStatusCode.BadRequest) { throw new BadRequestException($"GetJobsByFilter Returned a bad request"); } else { throw new InternalServerException($"GetJobsByFilter Returned {jsonResponse}"); } } } }
public async Task <GetJobsByFilterResponse> GetJobsByFilter(GetJobsByFilterRequest getJobsByFilterRequest) { string path = $"api/GetJobsByFilter"; ResponseWrapper <GetJobsByFilterResponse, GroupServiceErrorCode> getJobsByFilterResponseWithWrapper; using (HttpResponseMessage response = await _httpClientWrapper.GetAsync( HttpClientConfigName.RequestService, path, getJobsByFilterRequest, CancellationToken.None).ConfigureAwait(false)) { string jsonResponse = await response.Content.ReadAsStringAsync(); getJobsByFilterResponseWithWrapper = JsonConvert.DeserializeObject <ResponseWrapper <GetJobsByFilterResponse, GroupServiceErrorCode> >(jsonResponse); if (getJobsByFilterResponseWithWrapper.HasContent && getJobsByFilterResponseWithWrapper.IsSuccessful) { return(getJobsByFilterResponseWithWrapper.Content); } } throw new System.Exception($"GetJobsByFilter failed with exception"); }