From ae80be2402a701485726e9cd98df998431d6c962 Mon Sep 17 00:00:00 2001 From: Thomas Schnaak <schnaak@uni-potsdam.de> Date: Fri, 15 Jun 2018 10:44:43 +0200 Subject: [PATCH] feat: Added Rest for project description, fix: Typo in Visibility enum --- .../gf/modules/journal/model/Journal.java | 3 + .../journal/model/ProjectDescription.java | 104 ++++++++++++++++++ .../gf/modules/journal/model/Visibility.java | 2 +- .../journal/service/DummyJournalService.java | 4 +- .../service/DummyProjectDescription.java | 52 +++++++++ .../service/ProjectDescriptionService.java | 18 +++ .../journal/view/ProjectDescriptionView.java | 73 ++++++++++++ 7 files changed, 253 insertions(+), 3 deletions(-) create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java index 1d47c27f..b0bc10c1 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java @@ -2,6 +2,9 @@ package unipotsdam.gf.modules.journal.model; import unipotsdam.gf.modules.assessment.controller.StudentIdentifier; +/** + * Model Class for the learnig journal of the e-portfolio + */ public class Journal { long id; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java new file mode 100644 index 00000000..5d6bc688 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java @@ -0,0 +1,104 @@ +package unipotsdam.gf.modules.journal.model; + +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.modules.assessment.controller.StudentIdentifier; + +import java.util.ArrayList; +import java.util.Map; + +/** + * Model class for the project description of the e portfolio + */ + +public class ProjectDescription { + + long id; + String name; + String description; + Project project; + ArrayList<Map<String,String>> links ; + ArrayList<StudentIdentifier> group; + long timestamp; + + public ProjectDescription() { + } + + public ProjectDescription(long id, String name, String description, Project project, ArrayList<Map<String, String>> links, ArrayList<StudentIdentifier> group, long timestamp) { + this.id = id; + this.name = name; + this.description = description; + this.project = project; + this.links = links; + this.group = group; + this.timestamp = timestamp; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Project getProject() { + return project; + } + + public void setProject(Project project) { + this.project = project; + } + + public ArrayList<Map<String, String>> getLinks() { + return links; + } + + public void setLinks(ArrayList<Map<String, String>> links) { + this.links = links; + } + + public ArrayList<StudentIdentifier> getGroup() { + return group; + } + + public void setGroup(ArrayList<StudentIdentifier> group) { + this.group = group; + } + + public long getTimestamp() { + return timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + @Override + public String toString() { + return "ProjectDescription{" + + "id=" + id + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + ", project=" + project + + ", links=" + links + + ", group=" + group + + ", timestamp=" + timestamp + + '}'; + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Visibility.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Visibility.java index d418fdf1..4d924888 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Visibility.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Visibility.java @@ -1,4 +1,4 @@ package unipotsdam.gf.modules.journal.model; -public enum Visibility { All, GROUP, DOZENT, NONE +public enum Visibility { ALL, GROUP, DOZENT, NONE } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java index 3c282637..f5a48326 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java @@ -54,7 +54,7 @@ public class DummyJournalService implements JournalService { }else{ // if Visibility All, show if Filter allows it - if (j.getVisibility() == Visibility.All && filter==JournalFilter.ALL){ + if (j.getVisibility() == Visibility.ALL && filter==JournalFilter.ALL){ result.add(j); } @@ -125,7 +125,7 @@ public class DummyJournalService implements JournalService { StudentIdentifier studentIdentifier = new StudentIdentifier("0","0"); StudentIdentifier studentIdentifier2 = new StudentIdentifier("0","1"); - Journal j1 = new Journal(0,studentIdentifier,"test", cal.getTimeInMillis() , Visibility.All, "test1"); + Journal j1 = new Journal(0,studentIdentifier,"test", cal.getTimeInMillis() , Visibility.ALL, "test1"); Journal j2 = new Journal(1,studentIdentifier,"test2", cal.getTimeInMillis() , Visibility.NONE, "test2"); Journal j3 = new Journal(2,studentIdentifier,"test3", cal.getTimeInMillis() , Visibility.GROUP, "test3"); Journal j4 = new Journal(3,studentIdentifier,"test4", cal.getTimeInMillis() , Visibility.DOZENT ,"test4"); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java new file mode 100644 index 00000000..ceb6e07d --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java @@ -0,0 +1,52 @@ +package unipotsdam.gf.modules.journal.service; + +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.modules.assessment.controller.StudentIdentifier; +import unipotsdam.gf.modules.journal.model.Journal; +import unipotsdam.gf.modules.journal.model.ProjectDescription; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class DummyProjectDescription implements ProjectDescriptionService { + + ArrayList<Map<String,String>> links; + ArrayList<StudentIdentifier> group; + ProjectDescription testProject; + + public DummyProjectDescription(){ + + links = new ArrayList(); + HashMap<String,String> l1 = new HashMap<>(); + HashMap<String,String> l2 = new HashMap<>(); + l1.put("Test", "www.test.de"); + l2.put("Google", "www.google.de"); + links.add(l1); + links.add(l2); + + group = new ArrayList<>(); + group.add(new StudentIdentifier("0","0")); + group.add(new StudentIdentifier("0","1")); + + testProject = new ProjectDescription(0,"Test","Testdesription", new Project(), links, group, new Date().getTime()); + } + + + @Override + public ProjectDescription getProject(String project) { + return testProject; + } + + @Override + public void saveProjectText(String text) { + testProject.setDescription(text); + } + + @Override + public void saveProjectLinks(String text) { + //convert String to List + //setLinks + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java new file mode 100644 index 00000000..2a85f031 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java @@ -0,0 +1,18 @@ +package unipotsdam.gf.modules.journal.service; + +import unipotsdam.gf.modules.journal.model.Journal; +import unipotsdam.gf.modules.journal.model.ProjectDescription; + +/** + * Service for learning Journal + */ + +public interface ProjectDescriptionService { + + + ProjectDescription getProject(String project); + + void saveProjectText(String text); + + void saveProjectLinks(String text); +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java new file mode 100644 index 00000000..2f300993 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java @@ -0,0 +1,73 @@ +package unipotsdam.gf.modules.journal.view; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import sun.security.krb5.internal.MethodData; +import unipotsdam.gf.modules.journal.model.Journal; +import unipotsdam.gf.modules.journal.model.JournalFilter; +import unipotsdam.gf.modules.journal.model.ProjectDescription; +import unipotsdam.gf.modules.journal.service.DummyJournalService; +import unipotsdam.gf.modules.journal.service.DummyProjectDescription; +import unipotsdam.gf.modules.journal.service.JournalService; +import unipotsdam.gf.modules.journal.service.ProjectDescriptionService; + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.lang.invoke.MethodType; +import java.util.ArrayList; + +/** + * View for the project description + * + * TODO error handling + */ + +@Path("/prejectdescription") +public class ProjectDescriptionView { + + Logger log = LoggerFactory.getLogger(ProjectDescriptionView.class); + ProjectDescriptionService descriptionService = new DummyProjectDescription(); + + //get Description + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("{project}") + public Response getProjectDescription(@PathParam("project") String project){ + log.debug(">>> getProjectDescription: " + project); + + ProjectDescription result = descriptionService.getProject(project); + + log.debug(">>> getProjectDescription"); + return Response.ok(result).build(); + } + + //save Description + @POST + @Consumes(MediaType.TEXT_HTML) + @Path("/saveText/{text}") + public Response saveProjectText(@PathParam("text")String text){ + log.debug(">>> saveText: " + text); + + descriptionService.saveProjectText(text); + + log.debug(">>> saveText"); + + return Response.ok().build(); + } + + //save Link + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Path("/saveLinks/{links}") + public Response saveProjectLinks(@PathParam("links")String text){ + log.debug(">>> saveLinks: " + text); + + descriptionService.saveProjectLinks(text); + + log.debug(">>> saveLinks"); + + return Response.ok().build(); + } + +} -- GitLab