/* eslint-disable @typescript-eslint/no-explicit-any */ import { ASGroupDetail, ChangelogItemType, AvatarDetail, FreeSRJson, LightConeDetail, MOCGroupDetail, MonsterDetail, PeakGroupDetail, PFGroupDetail, PSResponse, RelicSetDetail } from "@/types"; import axios from 'axios'; import { psResponseSchema } from "@/zod"; import { ExtraData, Metadata } from "@/types"; export async function getMetadataApi(): Promise { try { const res = await axios.get(`/api/data/metadata`); return res.data as Metadata; } catch (error: unknown) { console.error('Failed to fetch metadata:', error); return { BaseType: {}, DamageType: {}, MainAffix: {}, SubAffix: {}, SkillConfig: {}, Stage: {}, HardLevelConfig: {}, EliteConfig: {} }; } } export async function getAvatarListApi(): Promise> { try { const res = await axios.get>(`/api/data/avatar`); return res.data; } catch (error) { console.error('Failed to fetch Avatars:', error); return {}; } } export async function getLightconeListApi(): Promise> { try { const res = await axios.get>(`/api/data/lightcone`); return res.data; } catch (error) { console.error('Failed to fetch lightcones:', error); return {}; } } export async function getRelicSetListApi(): Promise> { try { const res = await axios.get>(`/api/data/relic`); return res.data; } catch (error) { console.error('Failed to fetch relics:', error); return {}; } } export async function getMonsterListApi(): Promise> { try { const res = await axios.get>(`/api/data/monster`); return res.data; } catch (error) { console.error('Failed to fetch monster:', error); return {}; } } export async function getASEventListApi(): Promise> { try { const res = await axios.get>(`/api/data/as`); return res.data; } catch (error) { console.error('Failed to fetch AS:', error); return {}; } } export async function getPFEventListApi(): Promise> { try { const res = await axios.get>(`/api/data/pf`); return res.data; } catch (error) { console.error('Failed to fetch PF:', error); return {}; } } export async function getMOCEventListApi(): Promise> { try { const res = await axios.get>(`/api/data/moc`); return res.data; } catch (error) { console.error('Failed to fetch MOC:', error); return {}; } } export async function getPeakEventListApi(): Promise> { try { const res = await axios.get>(`/api/data/peak`); return res.data; } catch (error) { console.error('Failed to fetch peak:', error); return {}; } } export async function getChangelog(): Promise { try { const res = await axios.get(`/api/data/changelog`); return res.data; } catch (error) { console.error('Failed to fetch monster:', error); return []; } } export async function SendDataToServer( username: string, password: string, serverUrl: string, data?: FreeSRJson, extraData?: ExtraData ): Promise { try { const response = await axios.post(`${serverUrl}`, { username, password, data, extra_data: extraData }) const parsed = psResponseSchema.safeParse(response.data) if (!parsed.success) { return "Invalid response schema"; } return parsed.data; } catch (error: any) { return error?.message || "Unknown error"; } } export async function SendDataThroughProxy({ data }: { data: any }) { try { const response = await axios.post(`/api/proxy`, { ...data }) return response.data; } catch (error: any) { return error; } }