2026-03-12 17:44:02 +07:00
|
|
|
'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) {
|
2026-03-13 13:42:07 +07:00
|
|
|
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;
|
|
|
|
|
}
|
2026-03-12 17:44:02 +07:00
|
|
|
|
|
|
|
|
} 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({
|
2026-03-13 13:42:07 +07:00
|
|
|
searchType: monitoringType,
|
|
|
|
|
...(monitoringType === 'all_files' && { fileIds: [] })
|
|
|
|
|
|
2026-03-12 17:44:02 +07:00
|
|
|
}),
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
'Authorization': `Bearer ${token}`,
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (response.ok) {
|
2026-03-13 13:42:07 +07:00
|
|
|
const parsed: {
|
|
|
|
|
taskId: string,
|
|
|
|
|
status: string,
|
|
|
|
|
totalFiles: number
|
|
|
|
|
} = await response.json();
|
|
|
|
|
|
2026-03-12 17:44:02 +07:00
|
|
|
console.log(parsed);
|
2026-03-13 13:42:07 +07:00
|
|
|
if (parsed?.status === 'ACCEPTED') {
|
2026-03-12 17:44:02 +07:00
|
|
|
return parsed
|
|
|
|
|
} else {
|
|
|
|
|
return null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
return null
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
return null
|
|
|
|
|
}
|
|
|
|
|
}
|