list method
Stream<ListResponse>
list(
- ServiceCall call,
- ListRequest request
)
Implementation
@override
Stream<providerpb.ListResponse> list(
ServiceCall call,
providerpb.ListRequest request,
) async* {
final query = request.hasQuery()
? StructConverter.fromStruct(request.query)
: <String, dynamic>{};
final providerRequest = ListResourcesRequest(
token: request.token,
query: query,
limit: request.hasLimit() ? request.limit.toInt() : null,
pageSize: request.hasPageSize() ? request.pageSize.toInt() : null,
continuationToken: request.hasContinuationToken()
? request.continuationToken
: null,
);
try {
await for (final response in provider.list(providerRequest)) {
yield switch (response) {
ListResourcesComputed() => providerpb.ListResponse(
computed: providerpb.ListResponse_Computed(),
),
ListResourcesResult(:final id, :final name) =>
providerpb.ListResponse(
result: providerpb.ListResponse_Result(id: id, name: name),
),
ListResourcesContinuation(:final token) => providerpb.ListResponse(
continuation: providerpb.ListResponse_Continuation(
continuationToken: token,
),
),
};
}
} on UnsupportedProviderOperationError catch (error) {
throw GrpcError.unimplemented(error.toString());
}
}