mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-24 17:48:30 +02:00
Render gRPC request for reflection.
Closes https://feedback.yaak.app/p/grpc-address-reflection-and-address-bar-issues
This commit is contained in:
@@ -138,11 +138,30 @@ async fn cmd_dismiss_notification<R: Runtime>(
|
|||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
async fn cmd_grpc_reflect<R: Runtime>(
|
async fn cmd_grpc_reflect<R: Runtime>(
|
||||||
request_id: &str,
|
request_id: &str,
|
||||||
|
environment_id: Option<&str>,
|
||||||
proto_files: Vec<String>,
|
proto_files: Vec<String>,
|
||||||
|
window: WebviewWindow<R>,
|
||||||
app_handle: AppHandle<R>,
|
app_handle: AppHandle<R>,
|
||||||
grpc_handle: State<'_, Mutex<GrpcHandle>>,
|
grpc_handle: State<'_, Mutex<GrpcHandle>>,
|
||||||
) -> YaakResult<Vec<ServiceDefinition>> {
|
) -> YaakResult<Vec<ServiceDefinition>> {
|
||||||
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);
|
let uri = safe_uri(&req.url);
|
||||||
|
|
||||||
@@ -186,6 +205,7 @@ async fn cmd_grpc_go<R: Runtime>(
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let mut metadata = BTreeMap::new();
|
let mut metadata = BTreeMap::new();
|
||||||
|
|
||||||
// Add the rest of metadata
|
// Add the rest of metadata
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import { useMutation, useQuery } from '@tanstack/react-query';
|
import { useMutation, useQuery } from '@tanstack/react-query';
|
||||||
import { emit } from '@tauri-apps/api/event';
|
import { emit } from '@tauri-apps/api/event';
|
||||||
import type { GrpcConnection, GrpcRequest } from '@yaakapp-internal/models';
|
import type { GrpcConnection, GrpcRequest } from '@yaakapp-internal/models';
|
||||||
|
import {jotaiStore} from "../lib/jotai";
|
||||||
import { minPromiseMillis } from '../lib/minPromiseMillis';
|
import { minPromiseMillis } from '../lib/minPromiseMillis';
|
||||||
import { invokeCmd } from '../lib/tauri';
|
import { invokeCmd } from '../lib/tauri';
|
||||||
import { useActiveEnvironment } from './useActiveEnvironment';
|
import {activeEnvironmentIdAtom, useActiveEnvironment} from './useActiveEnvironment';
|
||||||
import { useDebouncedValue } from './useDebouncedValue';
|
import { useDebouncedValue } from './useDebouncedValue';
|
||||||
|
|
||||||
export interface ReflectResponseService {
|
export interface ReflectResponseService {
|
||||||
@@ -46,11 +47,13 @@ export function useGrpc(
|
|||||||
const reflect = useQuery<ReflectResponseService[], string>({
|
const reflect = useQuery<ReflectResponseService[], string>({
|
||||||
enabled: req != null,
|
enabled: req != null,
|
||||||
queryKey: ['grpc_reflect', req?.id ?? 'n/a', debouncedUrl, protoFiles],
|
queryKey: ['grpc_reflect', req?.id ?? 'n/a', debouncedUrl, protoFiles],
|
||||||
queryFn: () =>
|
queryFn: () => {
|
||||||
minPromiseMillis<ReflectResponseService[]>(
|
const environmentId = jotaiStore.get(activeEnvironmentIdAtom);
|
||||||
invokeCmd('cmd_grpc_reflect', { requestId, protoFiles }),
|
return minPromiseMillis<ReflectResponseService[]>(
|
||||||
|
invokeCmd('cmd_grpc_reflect', { requestId, protoFiles, environmentId }),
|
||||||
300,
|
300,
|
||||||
),
|
);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user