From d250c94c508f024e72710d5cfbfce6e2f624389c Mon Sep 17 00:00:00 2001 From: vaasu Date: Wed, 1 Apr 2020 05:33:33 +0530 Subject: [PATCH] Final backend commit --- .../TruecallerAssignmentController.java | 9 ++--- .../backend/entities/CBRouteResponse.java | 34 +++++++++++++++++++ .../backend/services/ChessBoardService.java | 3 -- .../backend/utilities/ChessBoardUtility.java | 16 ++++++--- 4 files changed, 50 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/truecaller/truecallerassignment/backend/controller/TruecallerAssignmentController.java b/src/main/java/com/truecaller/truecallerassignment/backend/controller/TruecallerAssignmentController.java index ce39fdb..66d4325 100644 --- a/src/main/java/com/truecaller/truecallerassignment/backend/controller/TruecallerAssignmentController.java +++ b/src/main/java/com/truecaller/truecallerassignment/backend/controller/TruecallerAssignmentController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import com.truecaller.truecallerassignment.backend.entities.CBRouteResponse; import com.truecaller.truecallerassignment.backend.entities.Tile; import com.truecaller.truecallerassignment.backend.services.ChessBoardService; import com.truecaller.truecallerassignment.backend.utilities.ChessBoardUtility; @@ -22,15 +23,15 @@ public class TruecallerAssignmentController { @Autowired private ChessBoardUtility utility; - @GetMapping("/") - public List findPath(@RequestParam int row, @RequestParam int column) { + @GetMapping("/findpath") + public List findPath(@RequestParam int row, @RequestParam int column) { Set allTiles = utility.populateAllTiles(); allTiles.stream().forEach(tile -> utility.generateAllowedMoves(tile, allTiles)); Tile tile = utility.getTile(row, column, allTiles); List traversedTiles = new ArrayList(); service.findPath(tile, traversedTiles); - utility.transformResponse(traversedTiles); - return traversedTiles; + List response = utility.transformResponse(traversedTiles); + return response; } diff --git a/src/main/java/com/truecaller/truecallerassignment/backend/entities/CBRouteResponse.java b/src/main/java/com/truecaller/truecallerassignment/backend/entities/CBRouteResponse.java index 0eb2b3f..6cd6bef 100644 --- a/src/main/java/com/truecaller/truecallerassignment/backend/entities/CBRouteResponse.java +++ b/src/main/java/com/truecaller/truecallerassignment/backend/entities/CBRouteResponse.java @@ -4,4 +4,38 @@ public class CBRouteResponse { private int row; private int column; private int order; + private String allowedMoves; + + public CBRouteResponse(int row, int column, int order) { + super(); + this.row = row; + this.column = column; + this.order = order; + } + + public int getRow() { + return row; + } + public void setRow(int row) { + this.row = row; + } + public int getColumn() { + return column; + } + public void setColumn(int column) { + this.column = column; + } + public int getOrder() { + return order; + } + public void setOrder(int order) { + this.order = order; + } + public String getAllowedMoves() { + return allowedMoves; + } + public void setAllowedMoves(String allowedMoves) { + this.allowedMoves = allowedMoves; + } + } diff --git a/src/main/java/com/truecaller/truecallerassignment/backend/services/ChessBoardService.java b/src/main/java/com/truecaller/truecallerassignment/backend/services/ChessBoardService.java index 624d8f6..d8a0e2b 100644 --- a/src/main/java/com/truecaller/truecallerassignment/backend/services/ChessBoardService.java +++ b/src/main/java/com/truecaller/truecallerassignment/backend/services/ChessBoardService.java @@ -10,9 +10,6 @@ import com.truecaller.truecallerassignment.backend.entities.Tile; public class ChessBoardService { public static void findPath(Tile currentTile, List traversedTiles) { - if (currentTile.isVisited()) { - return; - } if (currentTile.isVisited()) { return; } diff --git a/src/main/java/com/truecaller/truecallerassignment/backend/utilities/ChessBoardUtility.java b/src/main/java/com/truecaller/truecallerassignment/backend/utilities/ChessBoardUtility.java index 0105b51..fb832ca 100644 --- a/src/main/java/com/truecaller/truecallerassignment/backend/utilities/ChessBoardUtility.java +++ b/src/main/java/com/truecaller/truecallerassignment/backend/utilities/ChessBoardUtility.java @@ -4,12 +4,14 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; import org.springframework.stereotype.Component; +import com.truecaller.truecallerassignment.backend.entities.CBRouteResponse; import com.truecaller.truecallerassignment.backend.entities.Tile; @Component @@ -108,16 +110,20 @@ public class ChessBoardUtility { tile.setAllowedMoves(allowedMoves.stream().filter(tile1 -> !tile1.isVisited()).collect(Collectors.toList())); } - public void transformResponse(List traversedTiles) { - traversedTiles = traversedTiles.stream().map(tile -> { + public List transformResponse(List traversedTiles) { + AtomicInteger index = new AtomicInteger(); + List response = traversedTiles.stream().map(tile -> { + CBRouteResponse singleResponse = new CBRouteResponse(tile.getRow(), tile.getColumn(), index.incrementAndGet()); List tiles = tile.getAllowedMoves(); String moves = null; if (tiles != null) { moves = tiles.stream().map(tile1 -> tile1.getRow() + "-" + tile1.getColumn()).collect(Collectors.joining(", ")); } - tile.setAllowedMoves(null); - tile.setAllowedMovesUI(moves); - return tile; + singleResponse.setAllowedMoves(moves); +// tile.setAllowedMoves(null); +// tile.setAllowedMovesUI(moves); + return singleResponse; }).collect(Collectors.toList()); + return response; } }