import { SubmitSettingsPayload, SubmitSettingsResponse, GetSettingsResponse, CodeState, GetCodeDetailsResponse, UpdateSettingsPayload, UpdateSettingsResponse, DeleteSettingsResponse, } from "../types/codeTypes"; import axios from "axios"; const axiosInstance = axios.create({ headers: { "Content-Type": "application/json", }, }); export const submitSettings = async ( payload: SubmitSettingsPayload, ): Promise => { try { const response = await axiosInstance.post( "/api/tab", payload, ); const data = { data: response.data.data, success: true, message: response.data.message, }; return data; } catch (error: any) { if (error.response) { return { success: false, data: "", message: error.response.data.message || "提交失败", }; } else if (error.request) { return { success: false, data: "", message: "未收到服务器响应", }; } else { return { success: false, data: "", message: "提交过程中发生错误", }; } } }; export const updateCodeDetails = async ( id: string, payload: UpdateSettingsPayload, ): Promise => { try { const response = await axiosInstance.put( `/api/tab/${id}`, payload, ); const data = { data: response.data.data, success: true, message: response.data.message, }; return data; } catch (error: any) { if (error.response) { return { success: false, data: "", message: error.response.data.message || "更新失败", }; } else if (error.request) { return { success: false, data: "", message: "未收到服务器响应", }; } else { return { success: false, data: "", message: "提交过程中发生错误", }; } } }; export const getSettings = async (): Promise => { try { const response = await axiosInstance.get("api/tab"); const data = { tabs: response.data.tabs, success: true, message: response.data.message, }; return data; } catch (error: any) { return { success: false, tabs: [ { id: "", tabs: [], activeTabKey: "", editorSettings: { theme: "vs-dark", }, title: "", label: [], content: "", isEncrypted: false, password: "", date: "", submitTime: "", }, ], message: "获取代码详情失败。", }; } }; export const getCodeDetails = async ( id: string, ): Promise => { try { const response = await axiosInstance.get( `/api/tab/${id}`, ); const code: CodeState = response.data.data; return { success: true, data: code, message: "获取成功", }; } catch (error: any) { console.error("获取代码详情时出错:", error); return { success: false, data: { id: "", tabs: [], activeTabKey: "", editorSettings: { theme: "vs-dark", }, title: "", label: [], content: "", isEncrypted: false, password: "", date: "", submitTime: "", }, message: "获取代码详情失败。", // 可选的错误消息 }; } }; export const deleteSettings = async ( id: string, ): Promise => { try { const response = await axiosInstance.delete( `/api/tab/${id}`, ); const data = { data: response.data.data, success: true, message: response.data.message, }; return data; } catch (error: any) { if (error.response) { return { success: false, data: "", message: error.response.data.message || "删除失败", }; } else if (error.request) { return { success: false, data: "", message: "未收到服务器响应", }; } else { return { success: false, data: "", message: "删除过程中发生错误", }; } } };