parameterize method
Future<ParameterizeResponse>
parameterize(
- ServiceCall call,
- ParameterizeRequest request
)
Implementation
@override
Future<providerpb.ParameterizeResponse> parameterize(
ServiceCall call,
providerpb.ParameterizeRequest request,
) async {
if (request.hasArgs()) {
try {
final result = await provider.parameterizeArgs(request.args.args);
return providerpb.ParameterizeResponse(
name: result.name,
version: result.version,
);
} on UnsupportedProviderOperationError catch (error) {
throw GrpcError.unimplemented(error.toString());
}
}
if (request.hasValue()) {
final decodedValue = (() {
try {
return utf8.decode(request.value.value);
} on FormatException {
throw GrpcError.invalidArgument(
'parameterization value is not valid UTF-8',
);
}
})();
try {
final result = await provider.parameterizeValue(
request.value.name,
request.value.version,
decodedValue,
);
return providerpb.ParameterizeResponse(
name: result.name,
version: result.version,
);
} on UnsupportedProviderOperationError catch (error) {
throw GrpcError.unimplemented(error.toString());
}
}
throw GrpcError.invalidArgument('parameterization payload is missing');
}