// TODO: Make destination configurable.
var client = new hashprobe_proto.HashProbe('localhost:50051', grpc.credentials.createInsecure());
+var board = new Chess();
+
var handle_request = function(fen, response) {
+ if (!board.validate_fen(fen).valid) {
+ response.writeHead(400, {});
+ response.end();
+ return;
+ }
client.probe({fen: fen}, function(err, probe_response) {
if (err) {
response.writeHead(500, {});
exports.handle_request = handle_request;
var handle_response = function(fen, response, probe_response) {
- var board = new Chess();
-
var lines = {};
var root = translate_line(board, fen, probe_response['root'], true);
var toplay = board.turn();
if (line['move'] && line['move']['from_sq']) {
- r['pretty_move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'], promotion: line['move']['promotion'] }).san;
+ var promo = line['move']['promotion'];
+ if (promo) {
+ r['pretty_move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'], promotion: promo.toLowerCase() }).san;
+ } else {
+ r['pretty_move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'] }).san;
+ }
} else {
r['pretty_move'] = '';
}