private APIGatewayProxyResponse ProcessRequest(APIGatewayProxyRequest request) { Console.WriteLine($"Received API request: '{request.RequestContext.RequestId}'."); Console.WriteLine($"Request body: '{request.Body}'."); WebsiteMessageRequestModel requestModel = SafeBuildRequestModel(request.Body); Console.WriteLine($"Received input: {requestModel}"); PublishResponse snsPublishResponse = PublishToSns(requestModel); return(new APIGatewayProxyResponse { StatusCode = (int)snsPublishResponse.HttpStatusCode, Headers = new Dictionary <string, string> { ["Content-Type"] = "application/json", ["Access-Control-Allow-Origin"] = "*", }, Body = $"{{ \"message\": \"Your response has been sent dutifully.\" }}" }); }
private PublishResponse PublishToSns(WebsiteMessageRequestModel requestModel) { var snsModel = new SnsMessageModel { FromEmail = requestModel.FromEmail, CreatedAt = DateTime.UtcNow, MessageBody = requestModel.MessageContents }; string snsMessage = snsModel.GetSnsMessage(); Console.WriteLine($"Posting message to SNS: {snsMessage}"); PublishResponse response = _snsClient.PublishAsync(_emailTopicArn, snsMessage).Result; Console.WriteLine("Received SNS publish response: [{0}= '{1}', {2}= '{3}'].", nameof(PublishResponse.HttpStatusCode), response.HttpStatusCode, nameof(PublishResponse.MessageId), response.MessageId); return(response); }