import com.amazonaws.services.lambda.AWSLambdaClientBuilder; import com.amazonaws.services.lambda.model.InvokeRequest; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; public class ItemSearcher implements CallHandler { Connection connection; String cognitoID; private final String GET_ITEM_MATCHES = "SELECT * FROM Product WHERE description LIKE ? LIMIT 100;"; public ItemSearcher(Connection connection, String cognitoID) { this.connection = connection; this.cognitoID = cognitoID; } @Override public Object conductAction(Map body, HashMap queryParams, String cognitoID) throws SQLException { PreparedStatement getItemMatches = connection.prepareStatement(GET_ITEM_MATCHES); getItemMatches.setString(1, "%" + queryParams.get("id") + "%"); System.out.println(getItemMatches); ResultSet searchResults = getItemMatches.executeQuery(); ItemSearch searchResultsObject = new ItemSearch(searchResults); System.out.println(searchResultsObject); InvokeRequest invokeRequest = new InvokeRequest(); invokeRequest.setFunctionName("SearchHistoryPOST"); invokeRequest.setPayload("{" + " \"body\": {" + " \"searchTerm\": \"" + queryParams.get("id") + "\"" + " }," + " \"params\": {" + " \"querystring\": {" + " }" + " }," + " \"context\": {" + " \"sub\": \"" + cognitoID + "\"" + " }" + "}"); invokeRequest.setInvocationType("Event"); System.out.println(invokeRequest); AWSLambdaClientBuilder.defaultClient().invoke(invokeRequest); return searchResultsObject; } }