Files
DLE/frontend/src/services/tablesService.js

84 lines
2.5 KiB
JavaScript

/**
* Copyright (c) 2024-2025 Тарабанов Александр Викторович
* All rights reserved.
*
* This software is proprietary and confidential.
* Unauthorized copying, modification, or distribution is prohibited.
*
* For licensing inquiries: info@hb3-accelerator.com
* Website: https://hb3-accelerator.com
* GitHub: https://github.com/HB3-ACCELERATOR
*/
import api from '../api/axios';
const tablesApi = '/tables';
export default {
async getTables() {
const res = await api.get(`${tablesApi}?_t=${Date.now()}`);
return res.data;
},
async createTable(data) {
const res = await api.post(tablesApi, data);
return res.data;
},
async getTable(id) {
const res = await api.get(`${tablesApi}/${id}`);
return res.data;
},
async addColumn(tableId, data) {
const res = await api.post(`${tablesApi}/${tableId}/columns`, data);
return res.data;
},
async addRow(tableId) {
const res = await api.post(`${tablesApi}/${tableId}/rows`);
return res.data;
},
async saveCell(data) {
const res = await api.post(`${tablesApi}/cell`, data);
return res.data;
},
async deleteColumn(columnId) {
const res = await api.delete(`${tablesApi}/column/${columnId}`);
return res.data;
},
async deleteRow(rowId) {
const res = await api.delete(`${tablesApi}/row/${rowId}`);
return res.data;
},
async updateColumn(columnId, data) {
const res = await api.patch(`${tablesApi}/column/${columnId}`, data);
return res.data;
},
async updateTable(id, data) {
const res = await api.patch(`${tablesApi}/${id}`, data);
return res.data;
},
async deleteTable(id) {
// console.log('tablesService.deleteTable called with id:', id);
try {
const res = await api.delete(`${tablesApi}/${id}`);
// console.log('Delete response:', res.data);
return res.data;
} catch (error) {
// console.error('Error in deleteTable service:', error);
throw error;
}
},
async getFilteredRows(tableId, { product = '' } = {}) {
const params = new URLSearchParams();
if (product) params.append('product', product);
const res = await api.get(`/tables/${tableId}/rows?${params.toString()}`);
return res.data;
},
async rebuildIndex(tableId) {
const res = await api.post(`/tables/${tableId}/rebuild-index`);
return res.data;
},
async updateRowsOrder(tableId, orderArr) {
// orderArr: [{rowId, order}, ...]
const res = await api.patch(`/tables/${tableId}/rows/order`, { order: orderArr });
return res.data;
}
};