App-mgt store mapping validation

feature/appm-store/pbac
amalhub 7 years ago
parent 83f300ae2d
commit ae80bd8ba8

@ -30,14 +30,23 @@ public class GenericSubscriptionDAOImpl extends AbstractDAOImpl implements Subsc
private static Log log = LogFactory.getLog(GenericSubscriptionDAOImpl.class);
@Override
public int addDeviceApplicationMapping(String deviceIdentifier, String applicationUUID, boolean installed) throws ApplicationManagementException {
public int addDeviceApplicationMapping(String deviceIdentifier, String applicationUUID, boolean installed) throws
ApplicationManagementException {
Connection conn;
PreparedStatement stmt = null;
ResultSet rs = null;
int mappingId = -1;
try {
conn = this.getDBConnection();
String sql = "INSERT INTO APPM_DEVICE_APPLICATION_MAPPING (DEVICE_IDENTIFIER, APPLICATION_UUID, " +
String sql = "SELECT ID FROM APPM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_IDENTIFIER = ? AND " +
"APPLICATION_UUID = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, deviceIdentifier);
stmt.setString(2, applicationUUID);
rs = stmt.executeQuery();
if (!rs.next()) {
sql = "INSERT INTO APPM_DEVICE_APPLICATION_MAPPING (DEVICE_IDENTIFIER, APPLICATION_UUID, " +
"INSTALLED) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(sql, new String[]{"id"});
stmt.setString(1, deviceIdentifier);
@ -50,6 +59,11 @@ public class GenericSubscriptionDAOImpl extends AbstractDAOImpl implements Subsc
mappingId = rs.getInt(1);
}
return mappingId;
} else {
log.warn("Device[" + deviceIdentifier + "] application[" + applicationUUID + "] mapping already " +
"exists in the DB");
return -1;
}
} catch (SQLException e) {
throw new ApplicationManagementException("Error occurred while adding device application mapping to DB", e);
} finally {

@ -400,8 +400,9 @@ CREATE TABLE IF NOT EXISTS `APPM_DEVICE_APPLICATION_MAPPING` (
`INSTALLED` BOOLEAN NOT NULL,
`SENT_AT` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
CONSTRAINT fk_appm_application FOREIGN KEY (`APPLICATION_UUID`) REFERENCES
APPM_APPLICATION (`UUID`) ON DELETE NO ACTION ON UPDATE NO ACTION
CONSTRAINT `fk_appm_application` FOREIGN KEY (`APPLICATION_UUID`) REFERENCES
APPM_APPLICATION (`UUID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
UNIQUE KEY `device_app_mapping` (`DEVICE_IDENTIFIER`, `APPLICATION_UUID`)
) ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;

Loading…
Cancel
Save