From 85b07d4cc815c9db0da067ffb3e88d10cd982dc6 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 14 Aug 2017 12:12:52 +0200 Subject: [PATCH] update of projectId and id fields fixed --- .../api/projects/ProjectRestImpl.java | 43 ++++++++++--------- .../api/projects/ProjectRestImplTest.java | 3 ++ 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java index 34bdb657aa..fd0e399b63 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java @@ -409,36 +409,39 @@ public class ProjectRestImpl extends BaseRestImpl { throw new SecurityException("You cannot update projects"); } Set<String> fields = data.keySet(); - for (String string : fields) { - if (string.equalsIgnoreCase("version")) { - project.setVersion((String) data.get(string)); - } else if (string.equalsIgnoreCase("id")) { + for (String fieldName : fields) { + Object value = data.get(fieldName); + String stringValue = null; + if (value instanceof String) { + stringValue = (String) value; + } + if (fieldName.equalsIgnoreCase("version")) { + project.setVersion((String) value); + } else if (fieldName.equalsIgnoreCase("id")) { try { - int id = Integer.parseInt(string); + int id = Integer.parseInt(stringValue); if (id != project.getId()) { - throw new QueryException("Invalid id: " + string); + throw new QueryException("Invalid id: " + stringValue); } } catch (NumberFormatException e) { - throw new QueryException("Invalid id: " + string); + throw new QueryException("Invalid id: " + stringValue); } - } else if (string.equalsIgnoreCase("projectId")) { - if (!project.getProjectId().equalsIgnoreCase(string)) { + } else if (fieldName.equalsIgnoreCase("projectId")) { + if (!project.getProjectId().equalsIgnoreCase(stringValue)) { throw new QueryException("You cannot modify projectId"); } - } else if (string.equalsIgnoreCase("name")) { - project.setName((String) data.get(string)); - } else if (string.equalsIgnoreCase("notifyEmail")) { - project.setNotifyEmail((String) data.get(string)); - } else if (string.equalsIgnoreCase("organism")) { - Object res = data.get(string); - MiriamData organism = updateMiriamData(project.getOrganism(), res); + } else if (fieldName.equalsIgnoreCase("name")) { + project.setName((String) value); + } else if (fieldName.equalsIgnoreCase("notifyEmail")) { + project.setNotifyEmail(stringValue); + } else if (fieldName.equalsIgnoreCase("organism")) { + MiriamData organism = updateMiriamData(project.getOrganism(), value); project.setOrganism(organism); - } else if (string.equalsIgnoreCase("disease")) { - Object res = data.get(string); - MiriamData disease = updateMiriamData(project.getDisease(), res); + } else if (fieldName.equalsIgnoreCase("disease")) { + MiriamData disease = updateMiriamData(project.getDisease(), value); project.setDisease(disease); } else { - throw new QueryException("Unknown field: " + string); + throw new QueryException("Unknown field: " + fieldName); } } getProjectService().updateProject(project); diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/ProjectRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/ProjectRestImplTest.java index 697196ce28..97482c2216 100644 --- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/ProjectRestImplTest.java +++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/ProjectRestImplTest.java @@ -174,6 +174,8 @@ public class ProjectRestImplTest extends RestTestFunctions { data.put("name", "test"); data.put("organism", null); data.put("disease", disease); + data.put("projectId", "sample"); + data.put("id", "0"); projectRest.updateProject(adminToken.getId(), "sample", data); } catch (Exception e) { e.printStackTrace(); @@ -236,6 +238,7 @@ public class ProjectRestImplTest extends RestTestFunctions { project = new Project(); model = super.getModelForFile(string, true); project.addModel(model); + project.setProjectId(model.getName()); } IModelService mockModelService = Mockito.mock(IModelService.class); Mockito.when(mockModelService.getLastModelByProjectId(anyString(), any())).thenReturn(model); -- GitLab