'use server' import { getSessionData } from '@/app/actions/session'; import { API_BASE_URL } from '@/app/actions/definitions'; export async function getViolationSearchStatus() { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/v1/global-search/actual-task`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${token}`, } }); if (response.ok) { const text = await response.text(); if (text) { try { const parsed = JSON.parse(text); console.log('Parsed:', parsed); return parsed; } catch (e) { console.log('Not JSON, raw text:', text); return { status: text === 'Task not found' ? 'task-not-found' : text }; } } else { return null; } } else { return null } } catch (error) { return null } } export async function startGlobalMonitoring(monitoringType: 'monitoring' | 'all_files') { const token = await getSessionData('token'); console.log('startGlobalMonitoring'); try { const response = await fetch(`${API_BASE_URL}/api/v1/global-search/start`, { method: 'POST', body: JSON.stringify({ searchType: monitoringType, ...(monitoringType === 'all_files' && { fileIds: [] }) }), headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}`, } }); if (response.ok) { const parsed: { taskId: string, status: string, totalFiles: number } = await response.json(); console.log(parsed); if (parsed?.status === 'ACCEPTED') { return parsed } else { return null } } else { return null } } catch (error) { return null } } export async function getViolationFilesArray() { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/v1/global-search/violation-summary`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${token}`, } }); if (response.ok) { let parsed = await response.json(); if (parsed.length) { return parsed; } else { throw parsed; } } else { throw (`${response.status}`); } } catch (error) { return [] } } /* статистика нурешений */ export async function fetchViolationStats() { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/v1/data`, { method: 'POST', body: JSON.stringify({ version: 1, msg_id: 30010, message_body: { token: token } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }); if (response.ok) { let parsed = await response.json(); if (parsed) { return parsed; } else { throw null; } } else { throw (`${response.status}`); } } catch (error) { return null } } export async function getFileViolations(fileId: string, page: number) { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/v1/data`, { method: 'POST', body: JSON.stringify({ version: 1, msg_id: 30009, message_body: { file_id: fileId, page: page, size: 5, sort_direction: "desc", token: token } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }); if (response.ok) { let parsed = await response.json(); if (parsed.message_body) { return parsed.message_body; } else { throw null; } } else { throw (`${response.status}`); } } catch (error) { return null } } export async function fetchViolationAnalyticStatistic(group: 'domain' | 'tld') { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/v1/data`, { method: 'POST', body: JSON.stringify({ version: 1, msg_id: 30009, message_body: { group_by: group, action: "group", token: token, sort_direction: 'desc' } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }); if (response.ok) { let parsed = await response.json(); if (parsed?.message_body) { return parsed?.message_body; } else { throw null; } } else { throw (`${response.status}`); } } catch (error) { return null } } export async function fetchViolationStatistic() { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/v1/data`, { method: 'POST', body: JSON.stringify({ version: 1, msg_id: 30010, message_body: { token: token, } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }); if (response.ok) { let parsed = await response.json(); if (parsed?.message_body) { return parsed?.message_body; } else { throw null; } } else { throw (`${response.status}`); } } catch (error) { return null } }