Fix issue in Geo fence get by fence name

corrective-policy
Pahansith 4 years ago
parent 695023e3e6
commit 84608f2f58

@ -659,7 +659,7 @@ public class GeoLocationBasedServiceImpl implements GeoLocationBasedService {
@QueryParam("name") String name) { @QueryParam("name") String name) {
try { try {
GeoLocationProviderService geoService = DeviceMgtAPIUtils.getGeoService(); GeoLocationProviderService geoService = DeviceMgtAPIUtils.getGeoService();
if (offset != 0 && limit != 0) { if (offset >= 0 && limit != 0) {
PaginationRequest request = new PaginationRequest(offset, limit); PaginationRequest request = new PaginationRequest(offset, limit);
if (name != null && !name.isEmpty()) { if (name != null && !name.isEmpty()) {
request.setProperty(DeviceManagementConstants.GeoServices.FENCE_NAME, name); request.setProperty(DeviceManagementConstants.GeoServices.FENCE_NAME, name);

@ -166,7 +166,35 @@ public class GeofenceDAOImpl implements GeofenceDAO {
@Override @Override
public List<GeofenceData> getGeoFencesOfTenant(String fenceName, int tenantId) public List<GeofenceData> getGeoFencesOfTenant(String fenceName, int tenantId)
throws DeviceManagementDAOException { throws DeviceManagementDAOException {
return null; try {
List<GeofenceData> geofenceData;
Connection conn = this.getConnection();
String sql = "SELECT " +
"ID, " +
"FENCE_NAME, " +
"DESCRIPTION, " +
"LATITUDE, " +
"LONGITUDE, " +
"RADIUS, " +
"GEO_JSON, " +
"FENCE_SHAPE, " +
"OWNER, " +
"TENANT_ID " +
"FROM DM_GEOFENCE " +
"WHERE FENCE_NAME LIKE ? AND TENANT_ID = ? ";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, fenceName + "%");
stmt.setInt(2, tenantId);
try (ResultSet rst = stmt.executeQuery()) {
geofenceData = extractGeofenceData(rst);
}
}
return geofenceData;
} catch (SQLException e) {
String msg = "Error occurred while retrieving Geofence of the tenant " + tenantId;
log.error(msg, e);
throw new DeviceManagementDAOException(msg, e);
}
} }
@Override @Override

Loading…
Cancel
Save