using System; using Amazon.Lambda.Core; using Amazon.Lambda.APIGatewayEvents; using Newtonsoft.Json; using MySqlConnector; using classes; using System.Net; using Model.ResponseModel; using System.Net.Http; using System.Threading.Tasks; namespace PMF { public class QueryInfringer: Pmfbase { public async Task QueryExternalInfringer(APIGatewayProxyRequest request, ILambdaContext context) { string statement = "eNatis::QueryExternalInfringer"; string userId = ""; APIGatewayProxyResponse response; try { string validationMessage = string.Empty; if (!Helper.IsRequestEmpty(request)) { var validRequest = Helper.ValidateRequestParameters(ref validationMessage, request.QueryStringParameters, "strIdType", "strIdNumber", "userId"); if (validRequest) { var idDocumentType = request.QueryStringParameters["strIdType"]; var idDocumentNumber = request.QueryStringParameters["strIdNumber"]; userId = request.QueryStringParameters["userId"]; var handler = new HttpClientHandler(); handler.ServerCertificateCustomValidationCallback = Helper.ServerCertificateCustomValidation; var client = new HttpClient(handler) { BaseAddress = new Uri(baseUrl) }; var eNatisResponse = await client.GetAsync($"infringement/queryinfringer?IdDocumentType={idDocumentType}&IdDocumentNumber={idDocumentNumber}"); var body = await eNatisResponse.Content.ReadAsStringAsync(); if (eNatisResponse.StatusCode == HttpStatusCode.OK) { // _logger.WriteLog(userId, statement, body, "eNATiS"); var responseBody = JsonConvert.DeserializeObject(body); response = HttpService.CreateResponse(200, payload: responseBody); } else { var error = JsonConvert.DeserializeObject(body); return HttpService.CreateResponse(error.statusCode, payload: error.message); } } else { response = HttpService.CreateResponse(400, payload: $"{validationMessage}"); } } else { _logger.LogMessage(context, $"Processing request failed invalid request"); response = HttpService.CreateResponse(400, payload: "No parameters provided"); } } catch (Exception ex) { _logger.WriteLog(userId, statement, ex.Message, "eNATiS"); return HttpService.CreateResponse(500, payload: ex.Message); } _logger.WriteLog(userId, statement, response.Body, "eNATiS"); return response; } } }