'use server' import { getSessionData } from '@/app/actions/session'; import { API_BASE_URL, API_DASHBOARD_URL } from '@/app/actions/definitions'; export async function fetchModerationContentList(page?: number, size?: number, sortBy?: string, sortDirection?: 'asc' | 'desc' | string) { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/admin/info`, { method: 'POST', body: JSON.stringify({ version: 1, msg_id: 40001, message_body: { action: 'files_for_moderation', page: page, page_size: size, sort_by: sortBy || '', sort_order: sortDirection || 'asc', } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${token}` } }); if (response.ok) { const parsed = await response.json(); if (parsed.message_code === 0) { return parsed.message_body.message_body; } else { return null; } } else { throw new Error(`${response.status}`); } } catch (error) { return null; } } export async function changeModerationContentStatus(fileId?: string, fileStatus?: string) { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/admin/control`, { method: 'POST', body: JSON.stringify({ version: 1, msg_id: 40002, message_body: { action: 'change_file_status', file_id: fileId, file_status: fileStatus } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${token}` } }); if (response.ok) { const parsed = await response.json(); console.log(parsed); if (parsed.message_code === 0) { return parsed.message_body.message_body; } else { return null; } } else { throw new Error(`${response.status}`); } } catch (error) { return null; } } export async function downloadFile(fileId: string, fileName: string) { const token = await getSessionData('token'); const response = await fetch(`${API_DASHBOARD_URL}/api/v1/files/download/${fileId}`, { headers: { 'Authorization': `Bearer ${token}`, }, }) if (!response.ok) { throw 'failed-to-download-file'; } const arrayBuffer = await response.arrayBuffer() const base64 = Buffer.from(arrayBuffer).toString('base64') return { data: base64, contentType: response.headers.get('content-type') || 'application/octet-stream', fileName: fileName } } export async function fetchAppealsContentList(page?: number, size?: number, sortBy?: string, sortDirection?: 'asc' | 'desc' | string) { const token = await getSessionData('token'); try { const response = await fetch(`${API_BASE_URL}/api/admin/info`, { method: 'POST', body: JSON.stringify({ version: 1, msg_id: 40001, message_body: { action: 'all_appeals', page: page, page_size: size, /* sort_by: sortDirection || 'asc', sort_order: sortBy || '', */ } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${token}` } }); if (response.ok) { const parsed = await response.json(); if (parsed.message_code === 0) { return parsed.message_body.message_body; } else { return null; } } else { throw new Error(`${response.status}`); } } catch (error) { return null; } }