'use server' import { getSessionData } from '@/app/actions/session'; import { API_BASE_URL } from '@/app/actions/definitions'; export interface NotificationBody { createdAt: string | null, id: number, message: string, status: string | null, type: string } export async function fetchActiveNotifications() { 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: 30015, message_body: { action: 'active', authToken: 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 parsed; } } else { throw (`${response.status}`); } } catch (error) { return false } } export async function fetchAllNotifications(page: number = 0, size: number = 10) { 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: 30015, message_body: { action: 'list', authToken: token, page: page, size: size, sortBy: "createdAt", sortDirection: "DESC", //DESC, ASC types: [], //"SEARCH_RESULT", "MONITORING_RESULT" statuses: ["NEW", "READIED"] //"NEW" } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }); if (response.ok) { let parsed = await response.json(); if (parsed?.message_code === 0) { return parsed?.message_body } else { throw parsed; } } else { throw (`${response.status}`); } } catch (error) { return false } } export async function notificationsMarkAsRead(ids: 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: 30015, message_body: { action: 'markRead', authToken: token, notificationIds: ids } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }); if (response.ok) { let parsed = await response.json(); if (parsed?.message_code === 0) { return parsed?.message_body } else { throw parsed; } } else { throw (`${response.status}`); } } catch (error) { return { success: false } } } export async function notificationsDelete(ids: number[]) { const token = await getSessionData('token'); console.log('notificationsDelete'); try { const response = await fetch(`${API_BASE_URL}/api/v1/data`, { method: 'POST', body: JSON.stringify({ version: 1, msg_id: 30015, message_body: { action: 'delete', authToken: token, notificationIds: ids } }), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }); if (response.ok) { let parsed = await response.json(); console.log('parsed'); console.log(parsed); if (parsed?.message_code === 0) { return parsed?.message_body } else { throw parsed; } } else { throw (`${response.status}`); } } catch (error) { return { success: false } } }