/* eslint-disable @typescript-eslint/no-explicit-any */ import { PUBLIC_BASE_API_URL } from '$env/static/public'; import { fail } from '@sveltejs/kit'; export async function load({ cookies }) { return { accessToken: cookies.get('accessToken') }; } export const actions = { create: async ({ cookies, request, getClientAddress }) => { const data = await request.formData(); const name = data.get('name'); const reqBody = JSON.stringify({ name }); const response = await fetch(`${PUBLIC_BASE_API_URL}/activity-group`, { body: reqBody, headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${cookies.get('accessToken')}`, 'x-forwarded-for': getClientAddress(), 'x-real-ip': getClientAddress() }, method: 'POST' }); const responseData = await response.json(); if (responseData.statusCode) { return fail(responseData.statusCode, { id: 'inputData', message: JSON.stringify(responseData.message) }); } return { id: 'inputData', message: 'Created' }; }, update: async ({ cookies, request, getClientAddress }) => { const data = await request.formData(); const id = data.get('id'); const name = data.get('name'); const reqBody = JSON.stringify({ name }); const response = await fetch(`${PUBLIC_BASE_API_URL}/activity-group/${id}`, { body: reqBody, headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${cookies.get('accessToken')}`, 'x-forwarded-for': getClientAddress(), 'x-real-ip': getClientAddress() }, method: 'PATCH' }); const responseData = await response.json(); if (responseData.statusCode) { return fail(responseData.statusCode, { id: 'inputData', message: JSON.stringify(responseData.message) }); } return { id: 'inputData', message: 'Updated' }; }, getTableData: async ({ cookies, request, getClientAddress }) => { const data = await request.formData(); const page = data.get('page'); const filterId = data.get('filterId'); const filterActivityGroup = data.get('filterActivityGroup'); let query = `?take=10&page=${page}`; if (filterId) { query += `&id=${filterId}`; } if (filterActivityGroup) { query += `&name=${filterActivityGroup}`; } try { const res = await fetch(`${PUBLIC_BASE_API_URL}/activity-group${query}`, { headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${cookies.get('accessToken')}`, 'x-forwarded-for': getClientAddress(), 'x-real-ip': getClientAddress() } }); const resData = await res.json(); if (resData.meta.itemCount === 0) { return fail(404, { id: 'tableData', message: 'No items available' }); } const pageCount = resData.meta.pageCount; const hasNextPage = resData.meta.hasNextPage; const hasPreviousPage = resData.meta.hasPreviousPage; const returnData = resData.data.map((el: any) => ({ ...el, createdAt: new Date(el.createdAt).toISOString().split('T')[0], updatedAt: new Date(el.updatedAt).toISOString().split('T')[0] })); return { returnData, pageCount, hasNextPage, hasPreviousPage, id: 'tableData' }; } catch (err: any) { return err.message; } } };