From 28f9f72f0747344ef9f8a430c1e1e9c0636f0a32 Mon Sep 17 00:00:00 2001 From: mlwauben Date: Wed, 3 Apr 2019 20:34:04 +0200 Subject: [PATCH] UPDATE:: achievement things, tests/checkstyle and it actually works now --- .../AchievementsTestController.java | 20 ------------ .../controller/DashBoardController.java | 19 ++++++++++-- .../greenify/client/rest/UserService.java | 20 ++++++++++++ .../main/resources/fxml/achievementstest.fxml | 18 ----------- .../src/main/resources/fxml/dashboard.fxml | 31 +++++++++++++------ src/Client/src/test/java/UserServiceTest.java | 6 ++++ .../greenify/server/rest/UserController.java | 17 ++++++---- .../server/service/AchievementService.java | 2 ++ .../greenify/server/service/UserService.java | 13 ++++++++ .../server/rest/UserControllerTest.java | 12 +++++++ .../server/service/UserServiceTest.java | 6 ++++ 11 files changed, 108 insertions(+), 56 deletions(-) delete mode 100644 src/Client/src/main/java/greenify/client/controller/AchievementsTestController.java delete mode 100644 src/Client/src/main/resources/fxml/achievementstest.fxml diff --git a/src/Client/src/main/java/greenify/client/controller/AchievementsTestController.java b/src/Client/src/main/java/greenify/client/controller/AchievementsTestController.java deleted file mode 100644 index f8eca2a..0000000 --- a/src/Client/src/main/java/greenify/client/controller/AchievementsTestController.java +++ /dev/null @@ -1,20 +0,0 @@ -package greenify.client.controller; - -import greenify.client.rest.UserService; -import javafx.fxml.FXML; -import javafx.scene.image.ImageView; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; - -/** - * Class that controls the achievements fxml file (the GUI Screen). - */ -@Controller -public class AchievementsTestController { - @Autowired - UserService userService; - - @FXML - private ImageView achievpic1; - -} diff --git a/src/Client/src/main/java/greenify/client/controller/DashBoardController.java b/src/Client/src/main/java/greenify/client/controller/DashBoardController.java index b697ff3..6355b03 100644 --- a/src/Client/src/main/java/greenify/client/controller/DashBoardController.java +++ b/src/Client/src/main/java/greenify/client/controller/DashBoardController.java @@ -13,6 +13,7 @@ import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; +import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.shape.Line; import javafx.stage.Stage; @@ -21,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import java.io.IOException; +import java.util.Map; /** * Class that controls the dashboard fxml file (the GUI Screen). @@ -60,6 +62,8 @@ public class DashBoardController { private Button calculateFootPrintButton; @FXML private Label footprintLabel; + @FXML + private ImageView achiev1image; /** * Loads the the necessary things before anything else. @@ -74,8 +78,7 @@ public class DashBoardController { activitiesButton.setSkin(new MyButtonSkin(activitiesButton)); userButton.setSkin(new MyButtonSkin(userButton)); friendsButton.setSkin(new MyButtonSkin(friendsButton)); - - + updateAchievements(); } /** @@ -102,7 +105,7 @@ public class DashBoardController { userPane.setVisible(false); activitiesPane.setVisible(false); friendsPane.setVisible(false); - + updateAchievements(); } /** @@ -172,6 +175,16 @@ public class DashBoardController { calcStage.show(); } + /** + * Updates the achievements. + */ + public void updateAchievements() { + Map achievements = userService.getAchievements(userService.currentUser.getName()); + achiev1image.setVisible((Boolean)achievements.get("Starting off")); + //achiev2image.setVisible(achievements.get("name second achievement")); + //Add all achievements here, add updateAchievements to the achievements pane + } + //class for the animations on the navigation buttons public class MyButtonSkin extends ButtonSkin { /** diff --git a/src/Client/src/main/java/greenify/client/rest/UserService.java b/src/Client/src/main/java/greenify/client/rest/UserService.java index cd2d035..6ea6f8f 100644 --- a/src/Client/src/main/java/greenify/client/rest/UserService.java +++ b/src/Client/src/main/java/greenify/client/rest/UserService.java @@ -12,6 +12,8 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; +import java.util.Map; + @Service public class UserService { public UserDto currentUser; @@ -134,4 +136,22 @@ public class UserService { ResponseEntity authenticateResponse = this.restTemplate.getForEntity(builder.build() .encode().toUri(), String.class); } + + /** + * Gets the achievements of a user. + * @param name name of the user + * @return Map with all achievements + */ + @SuppressWarnings("Duplicates") + public Map getAchievements(String name) { + HttpHeaders headers = new HttpHeaders(); + headers.set("Accept", MediaType.APPLICATION_JSON_VALUE); + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getAchievements") + .queryParam("name", name); + HttpEntity entity = new HttpEntity<>(headers); + System.out.println(builder.build().encode().toUri()); + return this.restTemplate.getForObject(builder.build() + .encode().toUri(), Map.class); + } + } diff --git a/src/Client/src/main/resources/fxml/achievementstest.fxml b/src/Client/src/main/resources/fxml/achievementstest.fxml deleted file mode 100644 index 6c72f53..0000000 --- a/src/Client/src/main/resources/fxml/achievementstest.fxml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/src/Client/src/main/resources/fxml/dashboard.fxml b/src/Client/src/main/resources/fxml/dashboard.fxml index 535f498..5f3fe77 100644 --- a/src/Client/src/main/resources/fxml/dashboard.fxml +++ b/src/Client/src/main/resources/fxml/dashboard.fxml @@ -1,14 +1,20 @@ - - - - - - - + + + + + + + + + + + + + - + @@ -41,7 +47,8 @@ - + + @@ -239,6 +246,12 @@ + + + + + + diff --git a/src/Client/src/test/java/UserServiceTest.java b/src/Client/src/test/java/UserServiceTest.java index 39478b4..cbcf1a8 100644 --- a/src/Client/src/test/java/UserServiceTest.java +++ b/src/Client/src/test/java/UserServiceTest.java @@ -62,6 +62,12 @@ public class UserServiceTest { userService.addFriend("Eric", "Ceren"); Mockito.verify(userService).addFriend("Eric", "Ceren"); } + + @Test + public void getAchievementsTest() throws Exception { + userService.getAchievements("mika"); + Mockito.verify(userService).getAchievements("mika"); + } } diff --git a/src/Server/src/main/java/greenify/server/rest/UserController.java b/src/Server/src/main/java/greenify/server/rest/UserController.java index 0fe3193..7a0af13 100644 --- a/src/Server/src/main/java/greenify/server/rest/UserController.java +++ b/src/Server/src/main/java/greenify/server/rest/UserController.java @@ -7,6 +7,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; + @RestController public class UserController { @Autowired @@ -47,7 +49,6 @@ public class UserController { public void setInput(@RequestParam(value = "name") String name, @RequestParam(value = "inputName") String inputName, @RequestParam(value = "value") String value) { - System.out.println("Here is server controller"); userService.setInput(name, inputName, value); } @@ -83,9 +84,13 @@ public class UserController { userService.addFriend(name, friend); } - /* @RequestMapping("/addAchievement") - public void addAchievement(@RequestParam(value = "name") String name, - @RequestParam(value = "achievement") String achievement) { - userService.achievementAchieved(name, achievement); - }*/ + /** + * This method gets all achievements of a user. + * @param name name of the user + * @return map of all achievements of the user + */ + @RequestMapping("/getAchievements") + public Map getAchievements(@RequestParam(value = "name") String name) { + return userService.getAchievements(name); + } } diff --git a/src/Server/src/main/java/greenify/server/service/AchievementService.java b/src/Server/src/main/java/greenify/server/service/AchievementService.java index 13a1f73..aee6918 100644 --- a/src/Server/src/main/java/greenify/server/service/AchievementService.java +++ b/src/Server/src/main/java/greenify/server/service/AchievementService.java @@ -6,7 +6,9 @@ import greenify.server.data.repository.UserRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +@Service public class AchievementService { @Autowired UserService userService; diff --git a/src/Server/src/main/java/greenify/server/service/UserService.java b/src/Server/src/main/java/greenify/server/service/UserService.java index 47c2a93..7669597 100644 --- a/src/Server/src/main/java/greenify/server/service/UserService.java +++ b/src/Server/src/main/java/greenify/server/service/UserService.java @@ -13,6 +13,8 @@ import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.Map; + @Service public class UserService { @Autowired @@ -177,6 +179,17 @@ public class UserService { } } + /** + * This method gets all achievements of a user. + * @param name name of the user + * @return map with all achievements of a user + */ + public Map getAchievements(String name) { + User user = userRepository.findByName(name); + return user.getAchievements(); + } + + /** * This method gets a JSON of XML with all users. * @return JSON/XML of all users diff --git a/src/Server/src/test/java/greenify/server/rest/UserControllerTest.java b/src/Server/src/test/java/greenify/server/rest/UserControllerTest.java index 4b6c70e..012f4a5 100644 --- a/src/Server/src/test/java/greenify/server/rest/UserControllerTest.java +++ b/src/Server/src/test/java/greenify/server/rest/UserControllerTest.java @@ -120,4 +120,16 @@ public class UserControllerTest { verify(userService, times(1)).getFootprint(arg1Captor.capture()); assertEquals("ceren", arg1Captor.getValue()); } + + @Test + public void getAchievementsTest() throws Exception { + ArgumentCaptor arg1Captor = ArgumentCaptor.forClass(String.class); + mvc.perform(get("/getAchievements") + .param("name", "mika") + .accept(MediaType.APPLICATION_JSON)) + .andDo(print()) + .andExpect(status().isOk()); + verify(userService, times(1)).getAchievements(arg1Captor.capture()); + assertEquals("mika", arg1Captor.getValue()); + } } diff --git a/src/Server/src/test/java/greenify/server/service/UserServiceTest.java b/src/Server/src/test/java/greenify/server/service/UserServiceTest.java index f287e64..5cc0950 100644 --- a/src/Server/src/test/java/greenify/server/service/UserServiceTest.java +++ b/src/Server/src/test/java/greenify/server/service/UserServiceTest.java @@ -6,6 +6,7 @@ import static org.mockito.Mockito.when; import greenify.common.ApplicationException; import greenify.common.UserDto; +import greenify.server.AllAchievements; import greenify.server.data.model.User; import greenify.server.data.repository.UserRepository; import org.junit.Before; @@ -201,4 +202,9 @@ public class UserServiceTest { assertThrows(ApplicationException.class, () -> userService.getAchievement("alex", "hello")); assertEquals(false, userService.getAchievement("alex", "Starting off")); } + + @Test + public void getAchievementsTest() { + assertEquals(AllAchievements.getDefaults(), userService.getAchievements("alex")); + } }