Skip to content

Commit

Permalink
feat(chore): added deep query params support
Browse files Browse the repository at this point in the history
Fix: #21
  • Loading branch information
Intevel committed Apr 14, 2022
1 parent 930ef94 commit a06fb19
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 14 deletions.
47 changes: 33 additions & 14 deletions src/runtime/composables/useDirectusItems.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 <T>(data: DirectusItemRequest): Promise<T> => {
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 <T>(data: DirectusItemRequest): Promise<T[]> => {
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 <T>(data: DirectusItemCreation): Promise<T[]> => {
const items = await directus<{data: T[]}>(`/items/${data.collection}`, {
const items = await directus<{ data: T[] }>(`/items/${data.collection}`, {
method: "POST",
body: data.items,
});
Expand All @@ -55,12 +64,22 @@ export const useDirectusItems = () => {
};

const updateItem = async <T>(data: DirectusItemUpdate): Promise<T> => {
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,
};
};
1 change: 1 addition & 0 deletions src/runtime/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ export interface DirectusQueryParams {
offset?: number;
page?: number;
alias?: string | Array<string>;
deep?: Record<string, unknown>;
}

export type DirectusThumbnailFormat = "jpg" | "png" | "webp" | "tiff";
Expand Down

0 comments on commit a06fb19

Please sign in to comment.