Files
no-copy-frontend/src/app/actions/violationActions.ts
T

83 lines
1.7 KiB
TypeScript
Raw Normal View History

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
}
}