File "getDetailProject.ts"
Full Path: /var/www/html/gitep_front/src/entities/project/api/getDetailProject.ts
File size: 3.32 KB
MIME-type: text/x-java
Charset: utf-8
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;
}
}