mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Adding the DAO layer for vpp user management
fixes https://roadmap.entgra.net/issues/10169
This commit is contained in:
parent
f246d6b8de
commit
cd42a2c48f
@ -0,0 +1,14 @@
|
||||
package io.entgra.device.mgt.core.application.mgt.core.dao;
|
||||
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppUserDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||
|
||||
|
||||
public interface VppApplicationDAO {
|
||||
|
||||
int addVppUser(VppUserDTO userDTO) throws ApplicationManagementDAOException;
|
||||
|
||||
VppUserDTO updateVppUser(VppUserDTO userDTO) throws ApplicationManagementDAOException;
|
||||
|
||||
VppUserDTO getUserByDMUsername(String emmUsername) throws ApplicationManagementDAOException;
|
||||
}
|
||||
@ -17,7 +17,7 @@
|
||||
*/
|
||||
package io.entgra.device.mgt.core.application.mgt.core.dao.common;
|
||||
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.SPApplicationDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.*;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.application.spapplication.GenericSPApplicationDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.application.spapplication.OracleSPApplicationDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.application.spapplication.PostgreSQLSPApplicationDAOImpl;
|
||||
@ -26,16 +26,14 @@ import io.entgra.device.mgt.core.application.mgt.core.dao.impl.visibility.Generi
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.visibility.OracleVisibilityDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.visibility.PostgreSQLVisibilityDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.visibility.SQLServerVisibilityDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.vpp.GenericVppApplicationDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.vpp.OracleVppApplicationDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.vpp.PostgreSQLVppApplicationDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.vpp.SQLServerVppApplicationDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.util.Constants;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.exception.UnsupportedDatabaseEngineException;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.ApplicationDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.ApplicationReleaseDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.LifecycleStateDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.ReviewDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.SubscriptionDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.VisibilityDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.application.PostgreSQLApplicationDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.application.SQLServerApplicationDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.application.release.OracleApplicationReleaseDAOImpl;
|
||||
@ -232,4 +230,28 @@ public class ApplicationManagementDAOFactory {
|
||||
}
|
||||
throw new IllegalStateException("Database engine has not initialized properly.");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* To get the instance of VppApplicationImplementation of the particular database engine.
|
||||
* @return specific VppApplicationImplementation
|
||||
*/
|
||||
public static VppApplicationDAO getVppApplicationDAO() {
|
||||
if (databaseEngine != null) {
|
||||
switch (databaseEngine) {
|
||||
case Constants.DataBaseTypes.DB_TYPE_H2:
|
||||
case Constants.DataBaseTypes.DB_TYPE_MYSQL:
|
||||
return new GenericVppApplicationDAOImpl();
|
||||
case Constants.DataBaseTypes.DB_TYPE_POSTGRESQL:
|
||||
return new PostgreSQLVppApplicationDAO();
|
||||
case Constants.DataBaseTypes.DB_TYPE_ORACLE:
|
||||
return new OracleVppApplicationDAOImpl();
|
||||
case Constants.DataBaseTypes.DB_TYPE_MSSQL:
|
||||
return new SQLServerVppApplicationDAOImpl();
|
||||
default:
|
||||
throw new UnsupportedDatabaseEngineException("Unsupported database engine : " + databaseEngine);
|
||||
}
|
||||
}
|
||||
throw new IllegalStateException("Database engine has not initialized properly.");
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,152 @@
|
||||
package io.entgra.device.mgt.core.application.mgt.core.dao.impl.vpp;
|
||||
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppUserDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.exception.DBConnectionException;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.VppApplicationDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.impl.AbstractDAOImpl;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.exception.UnexpectedServerErrorException;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.util.DAOUtil;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import java.sql.*;
|
||||
|
||||
public class GenericVppApplicationDAOImpl extends AbstractDAOImpl implements VppApplicationDAO {
|
||||
private static final Log log = LogFactory.getLog(GenericVppApplicationDAOImpl.class);
|
||||
|
||||
@Override
|
||||
public int addVppUser(VppUserDTO userDTO)
|
||||
throws ApplicationManagementDAOException {
|
||||
int vppUserId = -1;
|
||||
String sql = "INSERT INTO "
|
||||
+ "AP_VPP_USER("
|
||||
+ "CLIENT_USER_ID, "
|
||||
+ "DM_USERNAME, "
|
||||
+ "TENANT_ID, "
|
||||
+ "EMAIL, "
|
||||
+ "INVITE_CODE, "
|
||||
+ "STATUS,"
|
||||
+ "CREATED_TIME,"
|
||||
+ "LAST_UPDATED_TIME,"
|
||||
+ "MANAGED_ID,"
|
||||
+ "TEMP_PASSWORD) "
|
||||
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
try {
|
||||
Connection conn = this.getDBConnection();
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
stmt.setString(1, userDTO.getClientUserId());
|
||||
stmt.setString(2, userDTO.getDmUsername());
|
||||
stmt.setInt(3, userDTO.getTenantId());
|
||||
stmt.setString(4, userDTO.getEmail());
|
||||
stmt.setString(5, userDTO.getInviteCode());
|
||||
stmt.setString(6, userDTO.getStatus());
|
||||
stmt.setLong(7, currentTime);
|
||||
stmt.setLong(8, currentTime);
|
||||
stmt.setString(9, userDTO.getManagedId());
|
||||
stmt.setString(10, userDTO.getTmpPassword());
|
||||
stmt.executeUpdate();
|
||||
try (ResultSet rs = stmt.getGeneratedKeys()) {
|
||||
if (rs.next()) {
|
||||
vppUserId = rs.getInt(1);
|
||||
}
|
||||
}
|
||||
return vppUserId;
|
||||
}
|
||||
} catch (DBConnectionException e) {
|
||||
String msg = "Error occurred while obtaining database connection when adding the vpp user";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred when processing SQL to add the vpp user.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
public VppUserDTO updateVppUser(VppUserDTO userDTO)
|
||||
throws ApplicationManagementDAOException {
|
||||
|
||||
String sql = "UPDATE "
|
||||
+ "AP_VPP_USER "
|
||||
+ "SET "
|
||||
+ "CLIENT_USER_ID = ?,"
|
||||
+ "DM_USERNAME = ?, "
|
||||
+ "TENANT_ID = ?, "
|
||||
+ "EMAIL = ?, "
|
||||
+ "INVITE_CODE = ?, "
|
||||
+ "STATUS = ?, "
|
||||
+ "LAST_UPDATED_TIME = ?, "
|
||||
+ "MANAGED_ID = ?, "
|
||||
+ "TEMP_PASSWORD = ? "
|
||||
+ "WHERE ID = ?";
|
||||
try {
|
||||
Connection conn = this.getDBConnection();
|
||||
long updatedTime = System.currentTimeMillis();
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
stmt.setString(1, userDTO.getClientUserId());
|
||||
stmt.setString(2, userDTO.getDmUsername());
|
||||
stmt.setInt(3, userDTO.getTenantId());
|
||||
stmt.setString(4, userDTO.getEmail());
|
||||
stmt.setString(5, userDTO.getInviteCode());
|
||||
stmt.setString(6, userDTO.getStatus());
|
||||
stmt.setLong(7, updatedTime);
|
||||
stmt.setString(8, userDTO.getManagedId());
|
||||
stmt.setString(9, userDTO.getTmpPassword());
|
||||
stmt.setInt(10, userDTO.getId());
|
||||
stmt.executeUpdate();
|
||||
if (stmt.executeUpdate() == 1) {
|
||||
return userDTO;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
} catch (DBConnectionException e) {
|
||||
String msg = "Error occurred while obtaining database connection when updating the vpp user";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred when processing SQL to updating the vpp user.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
public VppUserDTO getUserByDMUsername(String emmUsername)
|
||||
throws ApplicationManagementDAOException {
|
||||
String sql = "SELECT "
|
||||
+ "ID, "
|
||||
+ "CLIENT_USER_ID, "
|
||||
+ "TENANT_ID, "
|
||||
+ "EMAIL, "
|
||||
+ "INVITE_CODE, "
|
||||
+ "STATUS, "
|
||||
+ "CREATED_TIME, "
|
||||
+ "LAST_UPDATED_TIME, "
|
||||
+ "MANAGED_ID, "
|
||||
+ "TEMP_PASSWORD "
|
||||
+ "FROM AP_VPP_USER "
|
||||
+ "WHERE DM_USERNAME = ?";
|
||||
try {
|
||||
Connection conn = this.getDBConnection();
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
stmt.setString(1, emmUsername);
|
||||
try (ResultSet rs = stmt.executeQuery()) {
|
||||
return DAOUtil.loadVppUser(rs);
|
||||
}
|
||||
}
|
||||
} catch (DBConnectionException e) {
|
||||
String msg = "Error occurred while obtaining database connection when retrieving vpp user by EMM Username.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred when processing SQL to retrieve vpp user by EMM Username.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
} catch (UnexpectedServerErrorException e) {
|
||||
String msg = "Found more than one user for: " + emmUsername;
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,64 @@
|
||||
package io.entgra.device.mgt.core.application.mgt.core.dao.impl.vpp;
|
||||
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppUserDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.exception.DBConnectionException;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import java.sql.*;
|
||||
|
||||
public class OracleVppApplicationDAOImpl extends GenericVppApplicationDAOImpl {
|
||||
|
||||
private static final Log log = LogFactory.getLog(GenericVppApplicationDAOImpl.class);
|
||||
|
||||
@Override
|
||||
public int addVppUser(VppUserDTO userDTO)
|
||||
throws ApplicationManagementDAOException {
|
||||
int vppUserId = -1;
|
||||
String sql = "INSERT INTO "
|
||||
+ "AP_VPP_USER("
|
||||
+ "CLIENT_USER_ID, "
|
||||
+ "DM_USERNAME, "
|
||||
+ "TENANT_ID, "
|
||||
+ "EMAIL, "
|
||||
+ "INVITE_CODE, "
|
||||
+ "STATUS,"
|
||||
+ "CREATED_TIME,"
|
||||
+ "LAST_UPDATED_TIME,"
|
||||
+ "MANAGED_ID,"
|
||||
+ "TEMP_PASSWORD) "
|
||||
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
try {
|
||||
Connection conn = this.getDBConnection();
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql, new String[] {"ID"})) {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
stmt.setString(1, userDTO.getClientUserId());
|
||||
stmt.setString(2, userDTO.getDmUsername());
|
||||
stmt.setInt(3, userDTO.getTenantId());
|
||||
stmt.setString(4, userDTO.getEmail());
|
||||
stmt.setString(5, userDTO.getInviteCode());
|
||||
stmt.setString(6, userDTO.getStatus());
|
||||
stmt.setLong(7, currentTime);
|
||||
stmt.setLong(8, currentTime);
|
||||
stmt.setString(9, userDTO.getManagedId());
|
||||
stmt.setString(10, userDTO.getTmpPassword());
|
||||
stmt.executeUpdate();
|
||||
try (ResultSet rs = stmt.getGeneratedKeys()) {
|
||||
if (rs.next()) {
|
||||
vppUserId = rs.getInt(1);
|
||||
}
|
||||
}
|
||||
return vppUserId;
|
||||
}
|
||||
} catch (DBConnectionException e) {
|
||||
String msg = "Error occurred while obtaining database connection when adding the vpp user";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred when processing SQL to add the vpp user.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
package io.entgra.device.mgt.core.application.mgt.core.dao.impl.vpp;
|
||||
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppUserDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.exception.DBConnectionException;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import java.sql.*;
|
||||
|
||||
public class PostgreSQLVppApplicationDAO extends GenericVppApplicationDAOImpl {
|
||||
|
||||
private static final Log log = LogFactory.getLog(GenericVppApplicationDAOImpl.class);
|
||||
|
||||
public int addVppUser(VppUserDTO userDTO)
|
||||
throws ApplicationManagementDAOException {
|
||||
int vppUserId = -1;
|
||||
String sql = "INSERT INTO "
|
||||
+ "AP_VPP_USER("
|
||||
+ "CLIENT_USER_ID, "
|
||||
+ "DM_USERNAME, "
|
||||
+ "TENANT_ID, "
|
||||
+ "EMAIL, "
|
||||
+ "INVITE_CODE, "
|
||||
+ "STATUS,"
|
||||
+ "CREATED_TIME,"
|
||||
+ "LAST_UPDATED_TIME,"
|
||||
+ "MANAGED_ID,"
|
||||
+ "TEMP_PASSWORD) "
|
||||
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
try {
|
||||
Connection conn = this.getDBConnection();
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql, new String[]{"ID"})) {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
stmt.setString(1, userDTO.getClientUserId());
|
||||
stmt.setString(2, userDTO.getDmUsername());
|
||||
stmt.setInt(3, userDTO.getTenantId());
|
||||
stmt.setString(4, userDTO.getEmail());
|
||||
stmt.setString(5, userDTO.getInviteCode());
|
||||
stmt.setString(6, userDTO.getStatus());
|
||||
stmt.setLong(7, currentTime);
|
||||
stmt.setLong(8, currentTime);
|
||||
stmt.setString(9, userDTO.getManagedId());
|
||||
stmt.setString(10, userDTO.getTmpPassword());
|
||||
stmt.executeUpdate();
|
||||
try (ResultSet rs = stmt.getGeneratedKeys()) {
|
||||
if (rs.next()) {
|
||||
vppUserId = rs.getInt(1);
|
||||
}
|
||||
}
|
||||
return vppUserId;
|
||||
}
|
||||
} catch (DBConnectionException e) {
|
||||
String msg = "Error occurred while obtaining database connection when adding the vpp user";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred when processing SQL to add the vpp user.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
package io.entgra.device.mgt.core.application.mgt.core.dao.impl.vpp;
|
||||
|
||||
public class SQLServerVppApplicationDAOImpl extends GenericVppApplicationDAOImpl {
|
||||
}
|
||||
@ -24,6 +24,8 @@ import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.ProxyResponse;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppItuneUserDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.exception.DBConnectionException;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.exception.TransactionManagementException;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.wrapper.VppItuneUserRequestWrapper;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppUserDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.exception.ApplicationManagementException;
|
||||
@ -32,9 +34,12 @@ import io.entgra.device.mgt.core.application.mgt.common.wrapper.VppItuneUserResp
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.ApplicationDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.SPApplicationDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.VisibilityDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.VppApplicationDAO;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.dao.common.ApplicationManagementDAOFactory;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.internal.DataHolder;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.lifecycle.LifecycleStateManager;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.util.ConnectionManagerUtil;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.util.Constants;
|
||||
import io.entgra.device.mgt.core.application.mgt.core.util.VppHttpUtil;
|
||||
import org.apache.commons.logging.Log;
|
||||
@ -56,6 +61,7 @@ public class VppApplicationManagerImpl implements VPPApplicationManager {
|
||||
private SPApplicationDAO spApplicationDAO;
|
||||
private VisibilityDAO visibilityDAO;
|
||||
private final LifecycleStateManager lifecycleStateManager;
|
||||
private VppApplicationDAO vppApplicationDAO;
|
||||
|
||||
public VppApplicationManagerImpl() {
|
||||
initDataAccessObjects();
|
||||
@ -66,6 +72,7 @@ public class VppApplicationManagerImpl implements VPPApplicationManager {
|
||||
this.applicationDAO = ApplicationManagementDAOFactory.getApplicationDAO();
|
||||
this.visibilityDAO = ApplicationManagementDAOFactory.getVisibilityDAO();
|
||||
this.spApplicationDAO = ApplicationManagementDAOFactory.getSPApplicationDAO();
|
||||
this.vppApplicationDAO = ApplicationManagementDAOFactory.getVppApplicationDAO();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -96,10 +103,30 @@ public class VppApplicationManagerImpl implements VPPApplicationManager {
|
||||
.getInviteCode());
|
||||
userDTO.setStatus(vppItuneUserResponseWrapper.getUser().get(0).getStatus());
|
||||
log.error("userDTO " + userDTO.toString());
|
||||
// TODO: Save the userDTO in the DAO
|
||||
|
||||
|
||||
return userDTO;
|
||||
try {
|
||||
ConnectionManagerUtil.beginDBTransaction();
|
||||
if (vppApplicationDAO.addVppUser(userDTO) != -1) {
|
||||
ConnectionManagerUtil.commitDBTransaction();
|
||||
return userDTO;
|
||||
}
|
||||
ConnectionManagerUtil.rollbackDBTransaction();
|
||||
return null;
|
||||
} catch (ApplicationManagementDAOException e) {
|
||||
ConnectionManagerUtil.rollbackDBTransaction();
|
||||
String msg = "Error occurred while adding the Vpp User.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
} catch (TransactionManagementException e) {
|
||||
String msg = "Error occurred while executing database transaction for adding Vpp User.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
} catch (DBConnectionException e) {
|
||||
String msg = "Error occurred while retrieving the database connection for adding Vpp User.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
} finally {
|
||||
ConnectionManagerUtil.closeDBConnection();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -113,8 +140,20 @@ public class VppApplicationManagerImpl implements VPPApplicationManager {
|
||||
|
||||
@Override
|
||||
public VppUserDTO getUserByDMUsername(String emmUsername) throws ApplicationManagementException {
|
||||
// TODO: Return from DAO in a tenanted manner
|
||||
return null;
|
||||
try {
|
||||
ConnectionManagerUtil.openDBConnection();
|
||||
return vppApplicationDAO.getUserByDMUsername(emmUsername);
|
||||
} catch (DBConnectionException e) {
|
||||
String msg = "DB Connection error occurs while getting vpp User data related to EMM user " + emmUsername + ".";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
} catch (ApplicationManagementDAOException e) {
|
||||
String msg = "Error occurred while getting vpp User data related to EMM user " + emmUsername + ".";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
} finally {
|
||||
ConnectionManagerUtil.closeDBConnection();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -131,12 +170,35 @@ public class VppApplicationManagerImpl implements VPPApplicationManager {
|
||||
HttpStatus.SC_CREATED) && proxyResponse.getData().contains(Constants.VPP.EVENT_ID)) {
|
||||
|
||||
log.error("userDTO " + userDTO.toString());
|
||||
// TODO: Save the userDTO in the DAO
|
||||
|
||||
|
||||
try {
|
||||
ConnectionManagerUtil.beginDBTransaction();
|
||||
if (vppApplicationDAO.updateVppUser(userDTO) == null) {
|
||||
ConnectionManagerUtil.rollbackDBTransaction();
|
||||
String msg = "Unable to update the Vpp user " +userDTO.getId();
|
||||
log.error(msg);
|
||||
throw new ApplicationManagementException(msg);
|
||||
}
|
||||
ConnectionManagerUtil.commitDBTransaction();
|
||||
} catch (ApplicationManagementDAOException e) {
|
||||
ConnectionManagerUtil.rollbackDBTransaction();
|
||||
String msg = "Error occurred while updating the Vpp User.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
} catch (TransactionManagementException e) {
|
||||
String msg = "Error occurred while executing database transaction for Vpp User update.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
} catch (DBConnectionException e) {
|
||||
String msg = "Error occurred while retrieving the database connection for Vpp User update.";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
} finally {
|
||||
ConnectionManagerUtil.closeDBConnection();
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
String msg = "Error while callng VPP backend to update";
|
||||
String msg = "Error while calling VPP backend to update";
|
||||
log.error(msg, e);
|
||||
throw new ApplicationManagementException(msg, e);
|
||||
}
|
||||
|
||||
@ -32,6 +32,7 @@ import io.entgra.device.mgt.core.application.mgt.common.dto.ApplicationReleaseDT
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.DeviceSubscriptionDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.ReviewDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.ScheduledSubscriptionDTO;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppUserDTO;
|
||||
import io.entgra.device.mgt.core.device.mgt.common.DeviceIdentifier;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
@ -43,6 +44,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Date;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -344,6 +346,42 @@ public class DAOUtil {
|
||||
return subscriptionDTOS;
|
||||
}
|
||||
|
||||
public static VppUserDTO loadVppUser(ResultSet rs) throws SQLException, UnexpectedServerErrorException {
|
||||
List<VppUserDTO> vppUserDTOS = loadVppUsers(rs);
|
||||
if (vppUserDTOS.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
if (vppUserDTOS.size() > 1) {
|
||||
String msg = "Internal server error. Found more than one vpp user for requested emmUsername";
|
||||
log.error(msg);
|
||||
throw new UnexpectedServerErrorException(msg);
|
||||
}
|
||||
return vppUserDTOS.get(0);
|
||||
}
|
||||
|
||||
public static List<VppUserDTO> loadVppUsers (ResultSet rs) throws SQLException {
|
||||
List<VppUserDTO> vppUserDTOS = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
VppUserDTO vppUserDTO = new VppUserDTO();
|
||||
vppUserDTO.setId(rs.getInt("ID"));
|
||||
vppUserDTO.setClientUserId(rs.getString("CLIENT_USER_ID"));
|
||||
vppUserDTO.setTenantId(rs.getInt("TENANT_ID"));
|
||||
vppUserDTO.setEmail(rs.getString("EMAIL"));
|
||||
vppUserDTO.setInviteCode(rs.getString("INVITE_CODE"));
|
||||
vppUserDTO.setStatus(rs.getString("STATUS"));
|
||||
vppUserDTO.setManagedId(rs.getString("MANAGED_ID"));
|
||||
vppUserDTO.setTmpPassword(rs.getString("TEMP_PASSWORD"));
|
||||
if (rs.getLong("CREATED_TIME") != 0) {
|
||||
vppUserDTO.setCreatedTime(new Date(rs.getLong(("CREATED_TIME")) * 1000).toString());
|
||||
}
|
||||
if (rs.getLong("LAST_UPDATED_TIME") != 0) {
|
||||
vppUserDTO.setLastUpdatedTime(new Date(rs.getLong(("LAST_UPDATED_TIME")) * 1000).toString());
|
||||
}
|
||||
vppUserDTOS.add(vppUserDTO);
|
||||
}
|
||||
return vppUserDTOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up the statement and resultset after executing the query
|
||||
*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user