invoke method

  1. @override
Future<InvokeResponse> invoke(
  1. ServiceCall call,
  2. InvokeRequest request
)

Implementation

@override
Future<providerpb.InvokeResponse> invoke(
  ServiceCall call,
  providerpb.InvokeRequest request,
) async {
  final args = StructConverter.fromStruct(request.args);
  late final InvokeResult result;
  try {
    result = await provider.invoke(request.tok, args);
  } on UnsupportedProviderOperationError catch (error) {
    throw GrpcError.unimplemented(error.toString());
  }

  final response = providerpb.InvokeResponse();
  response.return_1 = await StructConverter.toStruct(result.outputs);
  if (result.failures != null) {
    response.failures.addAll(
      result.failures!.map(
        (failure) => providerpb.CheckFailure(
          property: failure.property,
          reason: failure.reason,
        ),
      ),
    );
  }
  return response;
}