diff --git a/packages/insomnia/src/main/ipc/grpc.ts b/packages/insomnia/src/main/ipc/grpc.ts index f6972918ea..d848caf4ae 100644 --- a/packages/insomnia/src/main/ipc/grpc.ts +++ b/packages/insomnia/src/main/ipc/grpc.ts @@ -106,10 +106,9 @@ const getMethodsFromReflection = async (host: string, metadata: GrpcRequestHeade throw error; } }; -const loadMethodsFromReflection = async (requestId: string): Promise => { - const request = await models.grpcRequest.getById(requestId); - invariant(request, `Grpc request ${requestId} not found`); - const methods = await getMethodsFromReflection(request.url, request.metadata); +const loadMethodsFromReflection = async (options: { url: string; metadata: GrpcRequestHeader[] }): Promise => { + invariant(options.url, 'gRPC request url not provided'); + const methods = await getMethodsFromReflection(options.url, options.metadata); return methods.map(method => ({ type: getMethodType(method), fullPath: method.path, diff --git a/packages/insomnia/src/ui/components/panes/grpc-request-pane.tsx b/packages/insomnia/src/ui/components/panes/grpc-request-pane.tsx index f83607e6d4..0b9c0d128c 100644 --- a/packages/insomnia/src/ui/components/panes/grpc-request-pane.tsx +++ b/packages/insomnia/src/ui/components/panes/grpc-request-pane.tsx @@ -6,7 +6,7 @@ import styled from 'styled-components'; import { getCommonHeaderNames, getCommonHeaderValues } from '../../../common/common-headers'; import { documentationLinks } from '../../../common/documentation'; import { generateId } from '../../../common/misc'; -import { getRenderedGrpcRequest, getRenderedGrpcRequestMessage, RENDER_PURPOSE_SEND } from '../../../common/render'; +import { getRenderContext, getRenderedGrpcRequest, getRenderedGrpcRequestMessage, render, RENDER_PURPOSE_SEND } from '../../../common/render'; import { GrpcMethodType } from '../../../main/ipc/grpc'; import * as models from '../../../models'; import type { GrpcRequest, GrpcRequestHeader } from '../../../models/grpc-request'; @@ -170,8 +170,13 @@ export const GrpcRequestPane: FunctionComponent = ({ }} handleChangeProtoFile={() => setIsProtoModalOpen(true)} handleServerReflection={async () => { - models.grpcRequest.update(activeRequest, { protoMethodName: '', protoFileId: '' }); - const methods = await window.main.grpc.loadMethodsFromReflection(activeRequest._id); + const request = await models.grpcRequest.update(activeRequest, { protoMethodName: '', protoFileId: '' }); + const renderContext = await getRenderContext({ request, environmentId, purpose: RENDER_PURPOSE_SEND }); + const rendered = await render({ + url: request.url, + metadata: request.metadata, + }, renderContext); + const methods = await window.main.grpc.loadMethodsFromReflection(rendered); setGrpcState({ ...grpcState, methods, reloadMethods: false }); }} />