Final backend commit

This commit is contained in:
2020-04-01 05:33:33 +05:30
parent d6e5696122
commit d250c94c50
4 changed files with 50 additions and 12 deletions

View File

@@ -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<Tile> findPath(@RequestParam int row, @RequestParam int column) {
@GetMapping("/findpath")
public List<CBRouteResponse> findPath(@RequestParam int row, @RequestParam int column) {
Set<Tile> allTiles = utility.populateAllTiles();
allTiles.stream().forEach(tile -> utility.generateAllowedMoves(tile, allTiles));
Tile tile = utility.getTile(row, column, allTiles);
List<Tile> traversedTiles = new ArrayList<Tile>();
service.findPath(tile, traversedTiles);
utility.transformResponse(traversedTiles);
return traversedTiles;
List<CBRouteResponse> response = utility.transformResponse(traversedTiles);
return response;
}

View File

@@ -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;
}
}

View File

@@ -10,9 +10,6 @@ import com.truecaller.truecallerassignment.backend.entities.Tile;
public class ChessBoardService {
public static void findPath(Tile currentTile, List<Tile> traversedTiles) {
if (currentTile.isVisited()) {
return;
}
if (currentTile.isVisited()) {
return;
}

View File

@@ -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<Tile> traversedTiles) {
traversedTiles = traversedTiles.stream().map(tile -> {
public List<CBRouteResponse> transformResponse(List<Tile> traversedTiles) {
AtomicInteger index = new AtomicInteger();
List<CBRouteResponse> response = traversedTiles.stream().map(tile -> {
CBRouteResponse singleResponse = new CBRouteResponse(tile.getRow(), tile.getColumn(), index.incrementAndGet());
List<Tile> 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;
}
}