Modify owners and compliance API exceptions (#858)

This commit is contained in:
Yi (Alan) Wang 2017-11-13 17:11:45 -08:00 committed by GitHub
parent f1b61d6773
commit 0b9262eaba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 24 deletions

View File

@ -24,6 +24,7 @@ import java.io.IOException;
import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.persistence.EntityManagerFactory;
import lombok.extern.slf4j.Slf4j;
import wherehows.models.table.DsCompliance;
@ -50,7 +51,8 @@ public class DatasetComplianceDao extends BaseDao {
return findBy(DsCompliance.class, "datasetId", datasetId);
}
public DatasetCompliance getDatasetComplianceByDatasetId(int datasetId, String datasetUrn) throws IOException {
@Nullable
public DatasetCompliance getDatasetComplianceByDatasetId(int datasetId, @Nonnull String datasetUrn) throws Exception {
return dsComplianceToDatasetCompliance(findComplianceById(datasetId));
}
@ -118,7 +120,8 @@ public class DatasetComplianceDao extends BaseDao {
dsCompliance.setModifiedBy(actor);
}
public DsComplianceSuggestion findComplianceSuggestionByUrn(@Nonnull String datasetUrn) {
@Nullable
public DsComplianceSuggestion findComplianceSuggestionByUrn(@Nonnull String datasetUrn) throws Exception {
throw new UnsupportedOperationException("Compliance Suggestion not implemented.");
}
@ -163,7 +166,7 @@ public class DatasetComplianceDao extends BaseDao {
* @return DatasetCompliance
* @throws IOException
*/
public DatasetCompliance dsComplianceToDatasetCompliance(DsCompliance dsCompliance) throws IOException {
public DatasetCompliance dsComplianceToDatasetCompliance(@Nonnull DsCompliance dsCompliance) throws IOException {
DatasetCompliance compliance = new DatasetCompliance();
compliance.setDatasetId(dsCompliance.getDatasetId());
compliance.setDatasetUrn(dsCompliance.getDatasetUrn());

View File

@ -16,6 +16,8 @@ package wherehows.dao.view;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.persistence.EntityManagerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -43,7 +45,8 @@ public class OwnerViewDao extends BaseViewDao {
* @param datasetUrn String
* @return List of DatasetOwner
*/
public List<DatasetOwner> getDatasetOwnersByUrn(String datasetUrn) {
@Nullable
public List<DatasetOwner> getDatasetOwnersByUrn(@Nonnull String datasetUrn) throws Exception {
Map<String, Object> params = new HashMap<>();
params.put("datasetUrn", datasetUrn);

View File

@ -307,21 +307,31 @@ public class Dataset extends Controller {
return ok(result);
}
public static Result getDatasetOwnersByID(int id) {
ObjectNode result = Json.newObject();
public static Promise<Result> getDatasetOwnersByID(int id) {
List<DatasetOwner> owners = null;
try {
String urn = getDatasetUrnByIdOrCache(id);
result.set("owners", Json.toJson(OWNER_VIEW_DAO.getDatasetOwnersByUrn(urn)));
result.put("status", "ok");
owners = OWNER_VIEW_DAO.getDatasetOwnersByUrn(urn);
} catch (Exception e) {
Logger.warn("Failed to get owners: " + e.toString());
result.put("status", "failed");
result.put("message", "Error: " + e.getMessage());
if (e.toString().contains("Response status 404")) {
JsonNode result = Json.newObject().put("status", "failed").put("msg", "Not found");
return Promise.promise(() -> ok(result));
}
Logger.error("Fetch owners Error: ", e);
JsonNode result =
Json.newObject().put("status", "failed").put("error", "true").put("msg", "Fetch data Error: " + e.toString());
return Promise.promise(() -> ok(result));
}
return ok(result);
if (owners == null) {
JsonNode result = Json.newObject().put("status", "failed").put("msg", "Not found");
return Promise.promise(() -> ok(result));
}
JsonNode result = Json.newObject().put("status", "ok").set("owners", Json.toJson(owners));
return Promise.promise(() -> ok(result));
}
public static Result updateDatasetOwners(int id) {
@ -872,17 +882,23 @@ public class Dataset extends Controller {
record = COMPLIANCE_DAO.getDatasetComplianceByDatasetId(datasetId, urn);
} catch (Exception e) {
Logger.warn("Failed to get compliance: " + e.toString());
JsonNode result = Json.newObject()
.put("status", "failed")
.put("error", "true")
.put("msg", "Fetch data Error: " + e.getMessage());
if (e.toString().contains("Response status 404")) {
JsonNode result = Json.newObject().put("status", "failed").put("msg", "Not found");
return Promise.promise(() -> ok(result));
}
Logger.error("Fetch compliance Error: ", e);
JsonNode result =
Json.newObject().put("status", "failed").put("error", "true").put("msg", "Fetch data Error: " + e.toString());
return Promise.promise(() -> ok(result));
}
if (record == null) {
JsonNode result = Json.newObject().put("status", "failed").put("msg", "Not found");
return Promise.promise(() -> ok(result));
}
JsonNode result = Json.newObject().put("status", "ok").set("complianceInfo", Json.toJson(record));
return Promise.promise(() -> ok(result));
}
@ -941,12 +957,14 @@ public class Dataset extends Controller {
try {
record = COMPLIANCE_DAO.findComplianceSuggestionByUrn(datasetUrn);
} catch (Exception e) {
Logger.warn("Failed to get compliance suggestion: " + e.toString());
JsonNode result = Json.newObject()
.put("status", "failed")
.put("error", "true")
.put("msg", "Fetch data Error: " + e.getMessage());
if (e.toString().contains("Response status 404")) {
JsonNode result = Json.newObject().put("status", "failed").put("msg", "Not found");
return Promise.promise(() -> ok(result));
}
Logger.error("Fetch compliance suggestion Error: ", e);
JsonNode result =
Json.newObject().put("status", "failed").put("error", "true").put("msg", "Fetch data Error: " + e.toString());
return Promise.promise(() -> ok(result));
}