diff --git a/src/runtime/composables/useDirectusItems.ts b/src/runtime/composables/useDirectusItems.ts index 02598393..e01874ad 100644 --- a/src/runtime/composables/useDirectusItems.ts +++ b/src/runtime/composables/useDirectusItems.ts @@ -13,34 +13,43 @@ export const useDirectusItems = () => { if (data.params?.filter) { (data.params.filter as unknown) = JSON.stringify(data.params.filter); } - const items = await directus<{data: T[]}>(`/items/${data.collection}`, { + if (data.params?.deep) { + (data.params.deep as unknown) = JSON.stringify(data.params.deep); + } + const items = await directus<{ data: T[] }>(`/items/${data.collection}`, { method: "GET", params: data.params, }); return items.data; }; - + const getSingletonItem = async (data: DirectusItemRequest): Promise => { if (data.params?.filter) { (data.params.filter as unknown) = JSON.stringify(data.params.filter); } - const items = await directus<{data: T}>(`/items/${data.collection}`, { + if (data.params?.deep) { + (data.params.deep as unknown) = JSON.stringify(data.params.deep); + } + const items = await directus<{ data: T }>(`/items/${data.collection}`, { method: "GET", params: data.params, }); return items.data; }; - + const getItemById = async (data: DirectusItemRequest): Promise => { - const items = await directus<{data: T[]}>(`/items/${data.collection}/${data.id}`, { - method: "GET", - params: data.params - }); + const items = await directus<{ data: T[] }>( + `/items/${data.collection}/${data.id}`, + { + method: "GET", + params: data.params, + } + ); return items.data; }; const createItems = async (data: DirectusItemCreation): Promise => { - const items = await directus<{data: T[]}>(`/items/${data.collection}`, { + const items = await directus<{ data: T[] }>(`/items/${data.collection}`, { method: "POST", body: data.items, }); @@ -55,12 +64,22 @@ export const useDirectusItems = () => { }; const updateItem = async (data: DirectusItemUpdate): Promise => { - const item = await directus<{data: T}>(`/items/${data.collection}/${data.id}`, { - method: "PATCH", - body: data.item, - }); + const item = await directus<{ data: T }>( + `/items/${data.collection}/${data.id}`, + { + method: "PATCH", + body: data.item, + } + ); return item.data; }; - return { getItems, getSingletonItem, getItemById, createItems, deleteItems, updateItem }; + return { + getItems, + getSingletonItem, + getItemById, + createItems, + deleteItems, + updateItem, + }; }; diff --git a/src/runtime/types/index.d.ts b/src/runtime/types/index.d.ts index 5a0f6df9..1209fd9c 100644 --- a/src/runtime/types/index.d.ts +++ b/src/runtime/types/index.d.ts @@ -52,6 +52,7 @@ export interface DirectusQueryParams { offset?: number; page?: number; alias?: string | Array; + deep?: Record; } export type DirectusThumbnailFormat = "jpg" | "png" | "webp" | "tiff";