getHandler method
Implementation
@override
Future<void> Function(RealtimeSessionController controller)? getHandler(RealtimeEvent e) {
switch (e) {
case RealtimeResponseOutputItemDoneEvent(item: RealtimeFunctionCall()):
return (controller) async {
final item = e.item as RealtimeFunctionCall;
if (item.name == metadata.name) {
try {
final output = await _doCall(controller, item);
controller.send(RealtimeConversationItemCreateEvent(item: output, previousItemId: item.id));
controller.send(RealtimeResponseCreateEvent(response: RealtimeResponseOptions()));
} catch (err) {
controller.send(RealtimeConversationItemCreateEvent(
item: RealtimeFunctionCallOutput(callId: item.callId, output: "Error: ${err}", status: "failed"),
previousItemId: item.id));
controller.send(RealtimeResponseCreateEvent(response: RealtimeResponseOptions()));
}
}
};
default:
return null;
}
}