onWebhook method

Future<void> onWebhook({
  1. required Map<String, dynamic> payload,
})

Implementation

Future<void> onWebhook({required Map<String, dynamic> payload}) async {
  final String event = payload['event'] as String;
  final Map<String, dynamic> data = (payload['data'] as Map)
      .cast<String, dynamic>();

  if (event == 'room.started') {
    final url = data['room_url'] as String;
    await onRoomStarted(
      RoomStartedEvent(roomName: data['room_name'] as String, roomUrl: url),
    );
  } else if (event == 'room.ended') {
    await onRoomEnded(RoomEndedEvent(roomName: data['room_name'] as String));
  } else if (event == 'room.call') {
    final url = data['room_url'] as String;

    await onCall(
      CallEvent(
        roomName: data['room_name'] as String,
        roomUrl: url,
        token: data['token'] as String,
        arguments: data['arguments'],
      ),
    );
  }
}