diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 70a25e79..489be682 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -138,11 +138,30 @@ async fn cmd_dismiss_notification( #[tauri::command] async fn cmd_grpc_reflect( request_id: &str, + environment_id: Option<&str>, proto_files: Vec, + window: WebviewWindow, app_handle: AppHandle, grpc_handle: State<'_, Mutex>, ) -> YaakResult> { - let req = app_handle.db().get_grpc_request(request_id)?; + let environment = match environment_id { + Some(id) => app_handle.db().get_environment(id).ok(), + None => None, + }; + let unrendered_request = app_handle.db().get_grpc_request(request_id)?; + let base_environment = + app_handle.db().get_base_environment(&unrendered_request.workspace_id)?; + let req = render_grpc_request( + &unrendered_request, + &base_environment, + environment.as_ref(), + &PluginTemplateCallback::new( + &app_handle, + &WindowContext::from_window(&window), + RenderPurpose::Send, + ), + ) + .await?; let uri = safe_uri(&req.url); @@ -186,6 +205,7 @@ async fn cmd_grpc_go( ), ) .await?; + let mut metadata = BTreeMap::new(); // Add the rest of metadata diff --git a/src-web/hooks/useGrpc.ts b/src-web/hooks/useGrpc.ts index a032231c..b433fb31 100644 --- a/src-web/hooks/useGrpc.ts +++ b/src-web/hooks/useGrpc.ts @@ -1,9 +1,10 @@ import { useMutation, useQuery } from '@tanstack/react-query'; import { emit } from '@tauri-apps/api/event'; import type { GrpcConnection, GrpcRequest } from '@yaakapp-internal/models'; +import {jotaiStore} from "../lib/jotai"; import { minPromiseMillis } from '../lib/minPromiseMillis'; import { invokeCmd } from '../lib/tauri'; -import { useActiveEnvironment } from './useActiveEnvironment'; +import {activeEnvironmentIdAtom, useActiveEnvironment} from './useActiveEnvironment'; import { useDebouncedValue } from './useDebouncedValue'; export interface ReflectResponseService { @@ -46,11 +47,13 @@ export function useGrpc( const reflect = useQuery({ enabled: req != null, queryKey: ['grpc_reflect', req?.id ?? 'n/a', debouncedUrl, protoFiles], - queryFn: () => - minPromiseMillis( - invokeCmd('cmd_grpc_reflect', { requestId, protoFiles }), + queryFn: () => { + const environmentId = jotaiStore.get(activeEnvironmentIdAtom); + return minPromiseMillis( + invokeCmd('cmd_grpc_reflect', { requestId, protoFiles, environmentId }), 300, - ), + ); + }, }); return {