Files
lcbp3.np-dms.work/n8n-cache/n8n/public/assets/dataStore.store-HuymAG46.js
2025-09-21 20:29:15 +07:00

289 lines
8.4 KiB
JavaScript
Executable File

import { f6 as makeRestApiRequest, $ as defineStore, at as useRootStore, au as useProjectsStore, r as ref, gG as DATA_STORE_STORE } from "./index--OJ5nhDf.js";
const fetchDataStoresApi = async (context, projectId, options, filter) => {
const apiEndpoint = projectId ? `/projects/${projectId}/data-tables` : "/data-tables-global";
return await makeRestApiRequest(
context,
"GET",
apiEndpoint,
{
options: options ?? void 0,
filter: filter ?? void 0
}
);
};
const createDataStoreApi = async (context, name, projectId, columns) => {
return await makeRestApiRequest(
context,
"POST",
`/projects/${projectId}/data-tables`,
{
name,
columns: []
}
);
};
const deleteDataStoreApi = async (context, dataStoreId, projectId) => {
return await makeRestApiRequest(
context,
"DELETE",
`/projects/${projectId}/data-tables/${dataStoreId}`,
{
dataStoreId,
projectId
}
);
};
const updateDataStoreApi = async (context, dataStoreId, name, projectId) => {
return await makeRestApiRequest(
context,
"PATCH",
`/projects/${projectId}/data-tables/${dataStoreId}`,
{
name
}
);
};
const addDataStoreColumnApi = async (context, dataStoreId, projectId, column) => {
return await makeRestApiRequest(
context,
"POST",
`/projects/${projectId}/data-tables/${dataStoreId}/columns`,
{
...column
}
);
};
const deleteDataStoreColumnApi = async (context, dataStoreId, projectId, columnId) => {
return await makeRestApiRequest(
context,
"DELETE",
`/projects/${projectId}/data-tables/${dataStoreId}/columns/${columnId}`
);
};
const moveDataStoreColumnApi = async (context, dataStoreId, projectId, columnId, targetIndex) => {
return await makeRestApiRequest(
context,
"PATCH",
`/projects/${projectId}/data-tables/${dataStoreId}/columns/${columnId}/move`,
{
targetIndex
}
);
};
const getDataStoreRowsApi = async (context, dataStoreId, projectId, options) => {
return await makeRestApiRequest(context, "GET", `/projects/${projectId}/data-tables/${dataStoreId}/rows`, {
...options ?? {}
});
};
const insertDataStoreRowApi = async (context, dataStoreId, row, projectId) => {
return await makeRestApiRequest(
context,
"POST",
`/projects/${projectId}/data-tables/${dataStoreId}/insert`,
{
returnData: true,
data: [row]
}
);
};
const updateDataStoreRowsApi = async (context, dataStoreId, rowId, rowData, projectId) => {
return await makeRestApiRequest(
context,
"PATCH",
`/projects/${projectId}/data-tables/${dataStoreId}/rows`,
{
filter: { id: rowId },
data: rowData
}
);
};
const deleteDataStoreRowsApi = async (context, dataStoreId, rowIds, projectId) => {
return await makeRestApiRequest(
context,
"DELETE",
`/projects/${projectId}/data-tables/${dataStoreId}/rows`,
{
ids: rowIds.join(",")
}
);
};
const reorderItem = (items, oldIndex, newIndex) => {
return items.map((item) => {
if (item.index === oldIndex) return { ...item, index: newIndex };
if (oldIndex < newIndex && item.index > oldIndex && item.index <= newIndex) {
return { ...item, index: item.index - 1 };
}
if (oldIndex > newIndex && item.index >= newIndex && item.index < oldIndex) {
return { ...item, index: item.index + 1 };
}
return item;
});
};
const useDataStoreStore = defineStore(DATA_STORE_STORE, () => {
const rootStore = useRootStore();
const projectStore = useProjectsStore();
const dataStores = ref([]);
const totalCount = ref(0);
const fetchDataStores = async (projectId, page, pageSize) => {
const response = await fetchDataStoresApi(rootStore.restApiContext, projectId, {
skip: (page - 1) * pageSize,
take: pageSize
});
dataStores.value = response.data;
totalCount.value = response.count;
};
const createDataStore = async (name, projectId) => {
const newStore = await createDataStoreApi(rootStore.restApiContext, name, projectId);
if (!newStore.project && projectId) {
const project = await projectStore.fetchProject(projectId);
if (project) {
newStore.project = project;
}
}
dataStores.value.push(newStore);
totalCount.value += 1;
return newStore;
};
const deleteDataStore = async (datastoreId, projectId) => {
const deleted = await deleteDataStoreApi(rootStore.restApiContext, datastoreId, projectId);
if (deleted) {
dataStores.value = dataStores.value.filter((store) => store.id !== datastoreId);
totalCount.value -= 1;
}
return deleted;
};
const deleteDataStoreColumn = async (datastoreId, projectId, columnId) => {
const deleted = await deleteDataStoreColumnApi(
rootStore.restApiContext,
datastoreId,
projectId,
columnId
);
if (deleted) {
const index = dataStores.value.findIndex((store) => store.id === datastoreId);
if (index !== -1) {
dataStores.value[index].columns = dataStores.value[index].columns.filter(
(col) => col.id !== columnId
);
}
}
return deleted;
};
const updateDataStore = async (datastoreId, name, projectId) => {
const updated = await updateDataStoreApi(
rootStore.restApiContext,
datastoreId,
name,
projectId
);
if (updated) {
const index = dataStores.value.findIndex((store) => store.id === datastoreId);
if (index !== -1) {
dataStores.value[index] = { ...dataStores.value[index], name };
}
}
return updated;
};
const fetchDataStoreDetails = async (datastoreId, projectId) => {
const response = await fetchDataStoresApi(rootStore.restApiContext, projectId, void 0, {
projectId,
id: datastoreId
});
if (response.data.length > 0) {
dataStores.value = response.data;
return response.data[0];
}
return null;
};
const fetchOrFindDataStore = async (datastoreId, projectId) => {
const existingStore = dataStores.value.find((store) => store.id === datastoreId);
if (existingStore) {
return existingStore;
}
return await fetchDataStoreDetails(datastoreId, projectId);
};
const addDataStoreColumn = async (datastoreId, projectId, column) => {
const newColumn = await addDataStoreColumnApi(
rootStore.restApiContext,
datastoreId,
projectId,
column
);
if (newColumn) {
const index = dataStores.value.findIndex((store) => store.id === datastoreId);
if (index !== -1) {
dataStores.value[index].columns.push(newColumn);
}
}
return newColumn;
};
const moveDataStoreColumn = async (datastoreId, projectId, columnId, targetIndex) => {
const moved = await moveDataStoreColumnApi(
rootStore.restApiContext,
datastoreId,
projectId,
columnId,
targetIndex
);
if (moved) {
const dsIndex = dataStores.value.findIndex((store) => store.id === datastoreId);
const fromIndex = dataStores.value[dsIndex].columns.findIndex((col) => col.id === columnId);
dataStores.value[dsIndex].columns = reorderItem(
dataStores.value[dsIndex].columns,
fromIndex,
targetIndex
);
}
return moved;
};
const fetchDataStoreContent = async (datastoreId, projectId, page, pageSize, sortBy) => {
return await getDataStoreRowsApi(rootStore.restApiContext, datastoreId, projectId, {
skip: (page - 1) * pageSize,
take: pageSize,
sortBy
});
};
const insertEmptyRow = async (dataStore) => {
const inserted = await insertDataStoreRowApi(
rootStore.restApiContext,
dataStore.id,
{},
dataStore.projectId
);
return inserted[0];
};
const updateRow = async (dataStoreId, projectId, rowId, rowData) => {
return await updateDataStoreRowsApi(
rootStore.restApiContext,
dataStoreId,
rowId,
rowData,
projectId
);
};
const deleteRows = async (dataStoreId, projectId, rowIds) => {
return await deleteDataStoreRowsApi(rootStore.restApiContext, dataStoreId, rowIds, projectId);
};
return {
dataStores,
totalCount,
fetchDataStores,
createDataStore,
deleteDataStore,
updateDataStore,
fetchDataStoreDetails,
fetchOrFindDataStore,
addDataStoreColumn,
deleteDataStoreColumn,
moveDataStoreColumn,
fetchDataStoreContent,
insertEmptyRow,
updateRow,
deleteRows
};
});
export {
reorderItem as r,
useDataStoreStore as u
};