[#1] Return iterator from ListContainersAsync and SearchObjectsAsync

Signed-off-by: Ivan Pchelintsev <i.pchelintsev@yadro.com>
This commit is contained in:
Ivan Pchelintsev 2024-05-22 10:32:07 +03:00
parent 70ba87bc60
commit 8cacbcc8e9
3 changed files with 21 additions and 18 deletions

View file

@ -21,8 +21,7 @@ public partial class Client
return response.Body.Container.ToModel();
}
//TODO: Return iterator
public async Task<ContainerId[]> ListContainersAsync()
public async IAsyncEnumerable<ContainerId> ListContainersAsync()
{
var request = new ListRequest
{
@ -34,9 +33,10 @@ public partial class Client
request.AddMetaHeader();
request.Sign(_key);
var response = await _containerServiceClient.ListAsync(request);
return response.Body.ContainerIds.Select(
cid => ContainerId.FromHash(cid.Value.ToByteArray())
).ToArray();
foreach (var cid in response.Body.ContainerIds)
{
yield return ContainerId.FromHash(cid.Value.ToByteArray());
}
}
public async Task<ContainerId> CreateContainerAsync(ModelsV2.Container container)
@ -55,6 +55,7 @@ public partial class Client
request.AddMetaHeader();
request.Sign(_key);
var response = await _containerServiceClient.PutAsync(request);
RequestVerifier.ProcessResponse(response);
return ContainerId.FromHash(response.Body.ContainerId.Value.ToByteArray());
}