public static void messageReceived(Holder holder, ChannelHandlerContext ctx, User user, StringMessage message) {
String[] split = split2(message.body);
int dashId = Integer.parseInt(split[0]);
DashBoard dash = user.profile.getDashByIdOrThrow(dashId);
String deviceString = split[1];
if (deviceString == null || deviceString.isEmpty()) {
throw new IllegalCommandException("Income device message is empty.");
}
Device temporaryDevice = JsonParser.parseDevice(deviceString, message.id);
if (temporaryDevice.isNotValid()) {
throw new IllegalCommandException("Income device message is not valid.");
}
for (Device device : dash.devices) {
if (device.id == temporaryDevice.id) {
throw new NotAllowedException("Device with same id already exists.", message.id);
}
}
String tempToken = TokenGeneratorUtil.generateNewToken();
holder.tokenManager.assignToken(user, dash, temporaryDevice, tempToken, true);
if (ctx.channel().isWritable()) {
ctx.writeAndFlush(makeASCIIStringMessage(GET_PROVISION_TOKEN,
message.id, temporaryDevice.toString()), ctx.voidPromise());
}
}