GameBoard: move
This commit is contained in:
		
							parent
							
								
									ae6ba413a2
								
							
						
					
					
						commit
						579f52ed04
					
				@ -9,11 +9,14 @@ import org.springframework.security.core.annotation.AuthenticationPrincipal;
 | 
			
		||||
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.RestController;
 | 
			
		||||
 | 
			
		||||
import djmil.cordacheckers.cordaclient.CordaClient;
 | 
			
		||||
import djmil.cordacheckers.cordaclient.dao.GameView;
 | 
			
		||||
import djmil.cordacheckers.cordaclient.dao.flow.arguments.ReqGameBoardMove;
 | 
			
		||||
import djmil.cordacheckers.cordaclient.dao.flow.arguments.ReqGameProposalCreate;
 | 
			
		||||
import djmil.cordacheckers.user.HoldingIdentityResolver;
 | 
			
		||||
import djmil.cordacheckers.user.User;
 | 
			
		||||
 | 
			
		||||
@ -92,4 +95,21 @@ public class GameController {
 | 
			
		||||
        return ResponseEntity
 | 
			
		||||
                .ok(drawRejGame);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PutMapping("/{uuid}/move") 
 | 
			
		||||
    public ResponseEntity<GameView> move(
 | 
			
		||||
        @AuthenticationPrincipal User issuer,
 | 
			
		||||
        @PathVariable UUID uuid,
 | 
			
		||||
        @RequestBody ReqGameBoardMove request
 | 
			
		||||
    ) {
 | 
			
		||||
        final GameView movedGame = cordaClient.gameBoardMove(
 | 
			
		||||
            issuer.getHoldingIdentity(), 
 | 
			
		||||
            uuid,
 | 
			
		||||
            request.move(),
 | 
			
		||||
            request.message()
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        return ResponseEntity
 | 
			
		||||
                .ok(movedGame);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -70,7 +70,7 @@ export default function useGamesApi(gamesReducer, config) {
 | 
			
		||||
            }),
 | 
			
		||||
 | 
			
		||||
        pushGameMove: ({ uuid, move, message }) => ifNot(games.isPushingGameMove) &&
 | 
			
		||||
            doPushing(`/api/game/${uuid}/move`, 'PUT', null, {
 | 
			
		||||
            doPushing(`/api/game/${uuid}/move`, 'PUT', { move, message }, {
 | 
			
		||||
                onPushing: (isPushingGameMove) => dispatchGames({ type: 'next', isPushingGameMove }),
 | 
			
		||||
                onSuccess: (game) => dispatchGames({ type: 'next', gamesList: games.nextGame(game), active: gamesInitialState.active })
 | 
			
		||||
            }),
 | 
			
		||||
 | 
			
		||||
@ -119,7 +119,7 @@ function GameBoardRoutes({ gamesReducer, gamesApi, username }) {
 | 
			
		||||
    dispatchGames({ type: 'nextNewGame', board });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const onStoneMove = (uuid, move) => console.log(uuid, 'move', move);
 | 
			
		||||
  const onStoneMove = (uuid, move) => gamesApi.pushGameMove({uuid, move, message: games.active.message});
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <Routes>
 | 
			
		||||
 | 
			
		||||
@ -33,6 +33,7 @@ export default function GameBoard({ username, onStoneClick, onStoneMove }) {
 | 
			
		||||
      <Player color={opponentColor || Color.black} name={opponentName} />
 | 
			
		||||
      <Board game={game} onStoneClick={onStoneClick} onStoneMove={onStoneMove} />
 | 
			
		||||
      <Player color={game?.myColor || Color.white} name={myName} />
 | 
			
		||||
      { games.isPushingGameMove ? <span>Moving...</span> : null}
 | 
			
		||||
    </div>
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user