@Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { if (cause instanceof IllegalArgumentException) { write(ctx, HttpResponseStatus.BAD_REQUEST, Optional.of(cause.getMessage())); } else { write(ctx, HttpResponseStatus.INTERNAL_SERVER_ERROR, Optional.of(Throwables.getStackTraceAsString(cause))); } } }
private void get(ChannelHandlerContext ctx, FullHttpRequest req) { Params params = parse(req); conn.getTable(TableName.valueOf(params.table)).get(new Get(Bytes.toBytes(params.row)) .addColumn(Bytes.toBytes(params.family), Bytes.toBytes(params.qualifier))) .whenComplete((r, e) -> { if (e != null) { exceptionCaught(ctx, e); } else { byte[] value = r.getValue(Bytes.toBytes(params.family), Bytes.toBytes(params.qualifier)); if (value != null) { write(ctx, HttpResponseStatus.OK, Optional.of(Bytes.toStringBinary(value))); } else { write(ctx, HttpResponseStatus.NOT_FOUND, Optional.empty()); } } }); }
private void put(ChannelHandlerContext ctx, FullHttpRequest req) { Params params = parse(req); byte[] value = new byte[req.content().readableBytes()]; req.content().readBytes(value); conn.getTable(TableName.valueOf(params.table)).put(new Put(Bytes.toBytes(params.row)) .addColumn(Bytes.toBytes(params.family), Bytes.toBytes(params.qualifier), value)) .whenComplete((r, e) -> { if (e != null) { exceptionCaught(ctx, e); } else { write(ctx, HttpResponseStatus.OK, Optional.empty()); } }); }
private void get(ChannelHandlerContext ctx, FullHttpRequest req) { Params params = parse(req); conn.getTable(TableName.valueOf(params.table)).get(new Get(Bytes.toBytes(params.row)) .addColumn(Bytes.toBytes(params.family), Bytes.toBytes(params.qualifier))) .whenComplete((r, e) -> { if (e != null) { exceptionCaught(ctx, e); } else { byte[] value = r.getValue(Bytes.toBytes(params.family), Bytes.toBytes(params.qualifier)); if (value != null) { write(ctx, HttpResponseStatus.OK, Optional.of(Bytes.toStringBinary(value))); } else { write(ctx, HttpResponseStatus.NOT_FOUND, Optional.empty()); } } }); }
@Override protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest req) { switch (req.method().name()) { case "GET": get(ctx, req); break; case "PUT": put(ctx, req); break; default: write(ctx, HttpResponseStatus.METHOD_NOT_ALLOWED, Optional.empty()); break; } }
private void put(ChannelHandlerContext ctx, FullHttpRequest req) { Params params = parse(req); byte[] value = new byte[req.content().readableBytes()]; req.content().readBytes(value); conn.getTable(TableName.valueOf(params.table)).put(new Put(Bytes.toBytes(params.row)) .addColumn(Bytes.toBytes(params.family), Bytes.toBytes(params.qualifier), value)) .whenComplete((r, e) -> { if (e != null) { exceptionCaught(ctx, e); } else { write(ctx, HttpResponseStatus.OK, Optional.empty()); } }); }
@Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { if (cause instanceof IllegalArgumentException) { write(ctx, HttpResponseStatus.BAD_REQUEST, Optional.of(cause.getMessage())); } else { write(ctx, HttpResponseStatus.INTERNAL_SERVER_ERROR, Optional.of(Throwables.getStackTraceAsString(cause))); } } }
@Override protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest req) { switch (req.method().name()) { case "GET": get(ctx, req); break; case "PUT": put(ctx, req); break; default: write(ctx, HttpResponseStatus.METHOD_NOT_ALLOWED, Optional.empty()); break; } }