handle method

  1. @override
Future<void> handle({
  1. required DeviceCommand command,
  2. required AuthenticationState state,
})
override

Implementation

@override
Future<void> handle({
  required DeviceCommand command,
  required AuthenticationState state,
}) async {
  final cmd = command as AnnounceDriverCommand;

  respondToChallenge(
    commandId: cmd.id,
    salt: cmd.salt,
    secret: _secret,
    socket: state.socket,
    timestamp: cmd.timestamp,
  );

  final app = getApplication(cmd.appIdentifier);
  final driver = getDriver(
    app: app,
    driverId: cmd.driverId,
    driverName: cmd.driverName,
  );

  final challenge = ChallengeCommand(
    salt: DriverSignatureHelper().createSalt(),
  );
  state.communicator = driver;
  state.challenge = challenge;

  state.socket.add(challenge.toString());
  logger.info(
    '[DRIVER]: received announcement: [${cmd.driverId}] -- [${cmd.driverName}]',
  );
}