Delete Lambda prototype

Prototype the User DELETE lambda. Amplify does not include this functionality, so putting it in a Lambda with the fine-grained API. This currently does not invalidate outstanding tokens nor does it clean up the database.
@claytonwwilson You will want to add the clean up code instead of the deleted stuff in UserDeleter
This commit is contained in:
NMerz
2020-10-05 12:29:28 -04:00
parent 1907dc6ce5
commit fe846fb81f
11 changed files with 158 additions and 9 deletions

View File

@@ -0,0 +1,3 @@
{
"userPoolId": "us-east-2_MFgSVKQMd",
}

View File

@@ -0,0 +1,11 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import java.util.Map;
public class UserDELETE implements RequestHandler<Map<String,Object>, Object> {
public Object handleRequest(Map<String, Object> inputMap, Context unfilled) {
return BasicHandler.handleRequest(inputMap, unfilled, UserDeleter.class);
}
}

View File

@@ -0,0 +1,59 @@
import com.amazonaws.services.cognitoidp.AWSCognitoIdentityProvider;
import com.amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClientBuilder;
import com.amazonaws.services.cognitoidp.model.AdminDeleteUserRequest;
import com.amazonaws.services.cognitoidp.model.AdminUserGlobalSignOutRequest;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class UserDeleter implements CallHandler {
private DBConnector connector;
private String cognitoID;
//private final String REMOVE_FROM_LIST = "DELETE FROM ListProduct WHERE (ProductID = ? AND ListID = ?);";
public UserDeleter(DBConnector connector, String cognitoID) {
this.connector = connector;
this.cognitoID = cognitoID;
}
public Object conductAction(Map<String, Object> bodyMap, HashMap<String, String> queryString, String cognitoID) throws SQLException {
AWSCognitoIdentityProvider awsCognitoIdentityProvider = AWSCognitoIdentityProviderClientBuilder.defaultClient();
Properties cognitoProperties;
try {
cognitoProperties = DBConnector.loadProperties("cognitoProperties.json");
} catch (IOException e) {
e.printStackTrace();
return null;
}
String userPoolId = cognitoProperties.get("userPoolId").toString();
System.out.println(userPoolId);
AdminDeleteUserRequest adminDeleteUserRequest = new AdminDeleteUserRequest().withUserPoolId(userPoolId);
adminDeleteUserRequest.setUsername(cognitoID);
System.out.println(adminDeleteUserRequest);
awsCognitoIdentityProvider.adminDeleteUser(adminDeleteUserRequest);
AdminUserGlobalSignOutRequest adminUserGlobalSignOutRequest = new AdminUserGlobalSignOutRequest().withUserPoolId(userPoolId);
adminUserGlobalSignOutRequest.setUsername(cognitoID);
System.out.println(adminUserGlobalSignOutRequest);
awsCognitoIdentityProvider.adminUserGlobalSignOut(adminUserGlobalSignOutRequest);
return null;
// Connection connection = connector.getConnection();
// try {
// PreparedStatement statement = connection.prepareStatement(REMOVE_FROM_LIST);
// statement.setInt(1, (Integer) bodyMap.get("ProductID"));
// statement.setInt(2, (Integer) bodyMap.get("ListID"));
// System.out.println(statement);
// statement.executeUpdate();
// connection.commit();
// } finally {
// connection.close();
// }
// return null;
}
}