Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
gilour
/
gitep_front
/
src
/
entities
/
project
/
api
:
getDetailProject.ts
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
import { $modelStore } from '@shared/index'; import { axiosInstance } from "@shared/api"; export const getDetailProject = async ({ projectId, articleID, articleGroupId, projects, accounts, payments_made, cash, date_from, date_to }: any) => { try { const modelId = $modelStore.getState().model; if (!modelId) { throw new Error("modelId не задана"); } const params: any = { articleID: articleID, articleGroupId: articleGroupId, payments_made, cash, }; if (date_from) params.date_from = date_from; if (date_to) params.date_to = date_to; console.debug('[ProjectAPI.request]', { modelId, projectId, params: { articleID, articleGroupId, projects, accounts, payments_made, cash } }); if (projects !== undefined && projects !== null && projects !== '') { const projectsValue = Array.isArray(projects) ? projects.join(',') : String(projects); if (projectsValue) { params['projects[]'] = projectsValue; } } if (accounts !== undefined && accounts !== null && accounts !== '') { const accountsValue = Array.isArray(accounts) ? accounts.join(',') : String(accounts); if (accountsValue) { params['accounts[]'] = accountsValue; } } const safeProjectId = (projectId && String(projectId).toLowerCase() !== 'undefined' && String(projectId).trim() !== '' && String(projectId).toLowerCase() !== 'total') ? `/${projectId}` : ''; const url = `cash-flow/project/${modelId}${safeProjectId}`; const queryParams: any = {}; if (params.articleID) queryParams.articleID = params.articleID; if (params.articleGroupId) queryParams.articleGroupId = params.articleGroupId; if (params.date_from) queryParams.date_from = params.date_from; if (params.date_to) queryParams.date_to = params.date_to; if (params['projects[]']) { queryParams.projects = Array.isArray(params['projects[]']) ? params['projects[]'] : params['projects[]'].split(','); } if (params['accounts[]']) { queryParams.accounts = Array.isArray(params['accounts[]']) ? params['accounts[]'] : params['accounts[]'].split(','); } if (params.payments_made) { queryParams.payments_made = Array.isArray(params.payments_made) ? params.payments_made : params.payments_made.split(','); } if (params.cash) { queryParams.cash = Array.isArray(params.cash) ? params.cash : params.cash.split(','); } const result = await axiosInstance.get(url, { params: queryParams }); return result } catch (error) { const err: any = error; console.error('[ProjectAPI.error]', { status: err?.response?.status, data: err?.response?.data, url: err?.config?.url }); throw error; } }