'use server' import { getSessionData } from '@/app/actions/session'; import { API_BASE_URL } from '@/app/actions/definitions'; export async function searchUserFiles(fileId: string) { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/v1/files/${fileId}/similar?similarityLevels=DUPLICATE,SIMILARITY`, { method: 'GET', headers: { 'Authorization': `Bearer ${token}` } }); if (response.ok) { let parsed = await response.json(); if (parsed.message_code === 0) { return parsed.message_body; } else { throw parsed.message_desc; } } else { throw (`${response.status}`); } } catch (error) { if (error === 'File for search unsupported') { return { errorMessage: 'file-for-search-unsupported' } } else { return { errorMessage: 'error' } } } } export async function searchGlobalFiles(fileId: string, currentPage: 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: 20007, message_body: { file_id: fileId, page: currentPage, check_similar_first: true, } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${token}` } }); if (response.ok) { let parsed = await response.json(); if (parsed.message_code === 0) { return parsed.message_body; } else { throw parsed; } } else { throw 'error'; } } catch (error) { let errorMessage: string = 'error'; if (error) { const typedError = error as any; switch (typedError.message_desc) { case 'No results found': errorMessage = 'no-similar-files-title' break; default: errorMessage = 'error' break; } } return { images: [], page: 0, pageSize: 0, totalPages: 0, totalResults: 0, error: errorMessage } } } export async function getSearchStats() { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/check/file_stats`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${token}`, } }); if (response.ok) { let parsed = await response.json(); return parsed; } else { return null; } } catch (error) { return null; } }