From 3a0352fd93ab72d0d76f1d9f43a46c7c9cb3f9d2 Mon Sep 17 00:00:00 2001
From: Jan Tymel <jan.tymel@notix.cz>
Date: Tue, 14 Jul 2020 21:24:22 +0200
Subject: [PATCH] Make previous example of entity update REST API working, get
 rid of service interface

---
 .../demo/controller/GameLevelController.java  | 11 +++--
 .../demo/service/GameLevelService.java        | 41 ++++++++++++++--
 .../service/impl/GameLevelServiceImpl.java    | 49 -------------------
 3 files changed, 44 insertions(+), 57 deletions(-)
 delete mode 100644 src/main/java/com/example/demo/service/impl/GameLevelServiceImpl.java

diff --git a/src/main/java/com/example/demo/controller/GameLevelController.java b/src/main/java/com/example/demo/controller/GameLevelController.java
index a1cb1b17..cad6e55d 100644
--- a/src/main/java/com/example/demo/controller/GameLevelController.java
+++ b/src/main/java/com/example/demo/controller/GameLevelController.java
@@ -14,6 +14,7 @@ import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -44,12 +45,12 @@ public class GameLevelController {
         return gameLevelService.findAllGameLevels();
     }
 
-    @GetMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ApiOperation(value = "Return game levels")
-    @ApiResponses(value = {@ApiResponse(code = 200, message = "Return game levels"),
+    @PutMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ApiOperation(value = "Update game level")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "Updated game level"),
         @ApiResponse(code = 500, message = "Unexpected application error")})
-    public List<GameLevelDto> updateGameLevel(@ApiParam(value = "Game Level ID", required = true) @PathVariable("id") final Long id,
+    public GameLevelDto updateGameLevel(@ApiParam(value = "Game Level ID", required = true) @PathVariable("id") final Long id,
         @ApiParam(value = "Update data", required = true) @RequestBody(required = true) GameLevelDto gameLevelDto) {
-        return gameLevelService.findAllGameLevels();
+        return gameLevelService.updateGameLevel(id, gameLevelDto);
     }
 }
diff --git a/src/main/java/com/example/demo/service/GameLevelService.java b/src/main/java/com/example/demo/service/GameLevelService.java
index 02106b87..bd2fcebc 100644
--- a/src/main/java/com/example/demo/service/GameLevelService.java
+++ b/src/main/java/com/example/demo/service/GameLevelService.java
@@ -1,12 +1,47 @@
 package com.example.demo.service;
 
+import com.example.demo.domain.GameLevel;
 import com.example.demo.dto.GameLevelDto;
+import com.example.demo.mapper.BeanMapper;
+import com.example.demo.repository.GameLevelRepository;
+import com.example.demo.service.GameLevelService;
+import org.apache.commons.collections4.IterableUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
-public interface GameLevelService {
+@Service
+public class GameLevelService {
 
-    List<GameLevelDto> findAllGameLevels();
+    private final GameLevelRepository gameLevelRepository;
 
-    Long updateGameLevel(Long id, GameLevelDto gameLevelDto);
+    @Autowired
+    public GameLevelService(GameLevelRepository gameLevelRepository) {
+        this.gameLevelRepository = gameLevelRepository;
+    }
+
+    public List<GameLevelDto> findAllGameLevels() {
+
+        Iterable<GameLevel> allGameLevels = gameLevelRepository.findAll();
+
+        List<GameLevelDto> result = new ArrayList<>();
+
+        if (!IterableUtils.isEmpty(allGameLevels)) {
+            for (GameLevel gameLevel : allGameLevels) {
+                result.add(BeanMapper.INSTANCE.toDto(gameLevel));
+            }
+        }
+
+        return result;
+    }
+
+    public GameLevelDto updateGameLevel(Long id, GameLevelDto gameLevelDto) {
+        GameLevel gameLevel = BeanMapper.INSTANCE.toEntity(gameLevelDto);
+
+        GameLevel savedEntity = gameLevelRepository.save(gameLevel);
+
+        return BeanMapper.INSTANCE.toDto(savedEntity);
+    }
 }
diff --git a/src/main/java/com/example/demo/service/impl/GameLevelServiceImpl.java b/src/main/java/com/example/demo/service/impl/GameLevelServiceImpl.java
deleted file mode 100644
index a08d37ac..00000000
--- a/src/main/java/com/example/demo/service/impl/GameLevelServiceImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.example.demo.service.impl;
-
-import com.example.demo.domain.GameLevel;
-import com.example.demo.dto.GameLevelDto;
-import com.example.demo.mapper.BeanMapper;
-import com.example.demo.repository.GameLevelRepository;
-import com.example.demo.service.GameLevelService;
-import org.apache.commons.collections4.IterableUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Service
-public class GameLevelServiceImpl implements GameLevelService {
-
-    private final GameLevelRepository gameLevelRepository;
-
-    @Autowired
-    public GameLevelServiceImpl(GameLevelRepository gameLevelRepository) {
-        this.gameLevelRepository = gameLevelRepository;
-    }
-
-    @Override
-    public List<GameLevelDto> findAllGameLevels() {
-
-        Iterable<GameLevel> allGameLevels = gameLevelRepository.findAll();
-
-        List<GameLevelDto> result = new ArrayList<>();
-
-        if (!IterableUtils.isEmpty(allGameLevels)) {
-            for (GameLevel gameLevel : allGameLevels) {
-                result.add(BeanMapper.INSTANCE.toDto(gameLevel));
-            }
-        }
-
-        return result;
-    }
-
-    @Override
-    public Long updateGameLevel(Long id, GameLevelDto gameLevelDto) {
-        GameLevel gameLevel = BeanMapper.INSTANCE.toEntity(gameLevelDto);
-
-        GameLevel savedEntity = gameLevelRepository.save(gameLevel);
-
-        return savedEntity.getId();
-    }
-}
-- 
GitLab