diff --git a/src/Server/src/main/java/greenify/server/AllAchievements.java b/src/Server/src/main/java/greenify/server/AllAchievements.java index 0dfadbd..eaa4efc 100644 --- a/src/Server/src/main/java/greenify/server/AllAchievements.java +++ b/src/Server/src/main/java/greenify/server/AllAchievements.java @@ -10,7 +10,12 @@ import java.util.Map; public class AllAchievements { private static final List allAchievements = Arrays.asList( new Achievement("Starting off", "You did your first green activity", false), - new Achievement("Social butterfly", "You added three friends", false) + new Achievement("Social butterfly", "You added three friends", false), + new Achievement("Green saver", "You saved * of CO2", false), + new Achievement("Animal friend", "You have eaten 10 vegetarian meals", false), + new Achievement("Tom Dumoulin", "You have biked * km", false), + new Achievement("Below average!", "You spend less CO2 than average on everything", false), + new Achievement("", "", false) ); /** 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 aee6918..4ecbe2b 100644 --- a/src/Server/src/main/java/greenify/server/service/AchievementService.java +++ b/src/Server/src/main/java/greenify/server/service/AchievementService.java @@ -24,6 +24,11 @@ public class AchievementService { */ public void updateAchievements(User user) { achieveGettingStarted(user); + achieveSocialButterfly(user); + achieveGreenSaver(user); + achieveAnimalFriend(user); + achieveTomDumoulin(user); + achieveBelowAverage(user); userRepository.save(user); } @@ -38,4 +43,59 @@ public class AchievementService { } } + /** + * This method changes achiev2 when this is the case. + * @param user user for whom achiev2 changes + */ + public void achieveSocialButterfly(User user) { + if (user.getFriends().size() >= 3) { + userService.setAchievement(user.getName(), "Social butterfly", true); + userRepository.save(user); + } + } + + /** + * This method changes achiev3 when this is the case. + * @param user user for whom achiev3 changes + */ + public void achieveGreenSaver(User user) { + if (43-user.getFootPrint() > 38) { + userService.setAchievement(user.getName(), "Green saver", true); + userRepository.save(user); + } + } + + /** + * This method changes achiev4 when this is the case. + * @param user user for whom achiev4 changes + */ + public void achieveAnimalFriend(User user) { + if (user.getExtraInputs().get("Vegetarian meal")) { + userService.setAchievement(user.getName(), "Animal friend", true); + userRepository.save(user); + } + } + + /** + * This method changes achiev5 when this is the case. + * @param user user for whom achiev5 changes + */ + public void achieveTomDumoulin(User user) { + if (user.getExtraInputs().get("Bike used")) { + userService.setAchievement(user.getName(), "Tom Dumoulin", true); + userRepository.save(user); + } + } + + /** + * This method changes achiev6 when this is the case. + * @param user user for whom achiev6 changes + */ + public void achieveBelowAverage(User user) { + if (Integer.parseInt(user.getFootPrintInputs().get("input_footprint_shopping_food_meatfisheggs_default")) < Integer.parseInt("2.4")) { + userService.setAchievement(user.getName(), "Below average", true); + userRepository.save(user); + } + } + }