Skip to content

Commit 49ceece

Browse files
committed
Get multiple items request
1 parent c7b8d16 commit 49ceece

2 files changed

Lines changed: 26 additions & 0 deletions

File tree

DirectusSharp/Requests/Collections/Extensions.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ private class GetGenericItemRequest<TItem> : GetItemRequest<TItem>
1111
protected override string GetCollection() => Collection;
1212
protected override string GetItemId() => Id;
1313
}
14+
15+
private class GetGenericItemsRequest<TItem> : GetItemsRequest<TItem>
16+
{
17+
public required string Collection { get; init; }
18+
protected override string GetCollection() => Collection;
19+
}
1420

1521
private class CreateGenericItemRequest<TItem> : CreateItemRequest<TItem>
1622
{
@@ -64,6 +70,14 @@ public static Task<DirectusResponse<TItem>> GetItemAsync<TItem>(this IDirectus c
6470
public static Task<DirectusResponse<TItem>> GetItemAsync<TItem>(this IDirectus client, string collection, Guid itemId) =>
6571
GetItemAsync<TItem>(client, collection, itemId.ToString());
6672

73+
public static async Task<DirectusResponse<TItem[]>> GetItemsAsync<TItem>(this IDirectus client, string collection)
74+
{
75+
return await client.ExecuteAsync(new GetGenericItemsRequest<TItem>()
76+
{
77+
Collection = collection,
78+
});
79+
}
80+
6781
public static async Task<DirectusResponse<TItem>> CreateItemAsync<TItem>(this IDirectus client, string collection,
6882
TItem item)
6983
{
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace DirectusSharp.Requests.Collections;
2+
3+
public abstract class GetItemsRequest<TItemType> : IDirectusRequest<TItemType[]>
4+
{
5+
protected abstract string GetCollection();
6+
public HttpRequestMessage GetMessage()
7+
{
8+
return new HttpRequestMessage(HttpMethod.Get, $"/items/{GetCollection()}");
9+
}
10+
11+
public object? GetMessageObject() => null;
12+
}

0 commit comments

Comments
 (0)