From 73b4bb96f663c7f4ee49f06974351b4147181583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=98=84=EC=84=B1=ED=95=84?= Date: Sat, 25 Jan 2025 17:18:56 +0900 Subject: [PATCH] HTTP save --- TestMasterUI/src/components/ServerManager.jsx | 18 ++++-- .../client-views/HTTPClientView.jsx | 55 ++++++++++--------- TestMasterUI/src/services/APIClient.js | 3 - TestMasterUI/src/services/ScenarioExecutor.js | 3 +- 4 files changed, 41 insertions(+), 38 deletions(-) diff --git a/TestMasterUI/src/components/ServerManager.jsx b/TestMasterUI/src/components/ServerManager.jsx index 476e1ec..d1a5093 100644 --- a/TestMasterUI/src/components/ServerManager.jsx +++ b/TestMasterUI/src/components/ServerManager.jsx @@ -4,7 +4,8 @@ import { Alert, AlertDescription } from '@/components/ui/alert'; import { Loader2 } from 'lucide-react'; import { useAPI } from '@/providers/APIProvider'; -const ServerManager = ({ onServerChange = () => {} }) => { +const ServerManager = ({ onServerChange = () => {}, defaultValue = null }) => { + const { servers, loading, error, loadServers } = useAPI(); const initialized = useRef(false); const [selectedServer, setSelectedServer] = useState(null); @@ -23,12 +24,17 @@ const ServerManager = ({ onServerChange = () => {} }) => { // Handle server selection when servers are loaded useEffect(() => { - if (servers?.length > 0 && !loading && !selectedServer) { - const defaultServer = servers[0]; - setSelectedServer(defaultServer); - onServerChange(defaultServer.id); + if (servers?.length > 0 && !loading) { + const defaultServer = defaultValue + ? servers.find(s => s.id === defaultValue) + : servers[0]; + + if (defaultServer) { + setSelectedServer(defaultServer); + onServerChange(defaultServer.id); + } } - }, [servers, loading, onServerChange, selectedServer]); + }, [servers, loading, onServerChange, defaultValue]); const handleServerChange = (serverId) => { const server = servers.find(s => s.id === serverId); diff --git a/TestMasterUI/src/components/client-views/HTTPClientView.jsx b/TestMasterUI/src/components/client-views/HTTPClientView.jsx index c417407..5cb5009 100644 --- a/TestMasterUI/src/components/client-views/HTTPClientView.jsx +++ b/TestMasterUI/src/components/client-views/HTTPClientView.jsx @@ -19,7 +19,7 @@ const HTTP_METHODS = [ export const HTTPClientView = ({model, index}) => { const apiClient = new APIClient(); - const {getServer} = useAPI(); + const {getServer, updateAPIRequest} = useAPI(); const [isLoading, setIsLoading] = useState(false); const [currentModel, setCurrentModel] = useState(model); const [basePath, setBasePath] = useState(''); @@ -104,7 +104,9 @@ export const HTTPClientView = ({model, index}) => { ); const handleSendRequest = async () => { - if (isLoading) return; + if (isLoading) { + return; + } setIsLoading(true); setEditorContents(prev => ({...prev, consoleLog: ''})); @@ -132,14 +134,11 @@ export const HTTPClientView = ({model, index}) => { size: `Size: ${response.size}` }); - console.log(responseData); - setEditorContents(prev => ({ ...prev, responseBody: response.body })); - console.log(editorContents.responseBody); } catch (error) { console.error(error); @@ -152,6 +151,23 @@ export const HTTPClientView = ({model, index}) => { } }; + const handleSave = async () => { + try { + const updatedModel = { + ...currentModel, + headers: currentModel.headers || [], + queryParams: currentModel.queryParams || [], + preRequestScript: editorContents.preRequestScript, + postRequestScript: editorContents.postRequestScript, + requestBody: currentModel.requestBody + }; + + await updateAPIRequest(updatedModel); + } catch (error) { + console.error('Failed to save API:', error); + } + }; + const renderResponseHeaders = () => ( @@ -184,10 +200,7 @@ export const HTTPClientView = ({model, index}) => { {/* Request Controls */}
- setCurrentModel(prev => ({...prev, method: value}))}> @@ -201,25 +214,15 @@ export const HTTPClientView = ({model, index}) => { - - + + - - +
{/* Request/Response Container */} @@ -241,7 +244,7 @@ export const HTTPClientView = ({model, index}) => {