From ae8f152d7b5b1c3aca3731339c4ccf83cbacf4b4 Mon Sep 17 00:00:00 2001
From: Nick Sanford <nick.sanford@viam.com>
Date: Sun, 9 Feb 2025 20:54:18 -0500
Subject: [PATCH] support-empty-requests-and-responses

---
 lib/grpc/server/transcode.ex | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/grpc/server/transcode.ex b/lib/grpc/server/transcode.ex
index 1d2562c5..efa3c29a 100644
--- a/lib/grpc/server/transcode.ex
+++ b/lib/grpc/server/transcode.ex
@@ -58,9 +58,8 @@ defmodule GRPC.Server.Transcode do
 
   defp map_request_body(%{body: "*"}, request_body), do: request_body
   defp map_request_body(%{body: ""}, request_body), do: request_body
-
-  defp map_request_body(%{body: field}, request_body),
-    do: %{field => request_body}
+  defp map_request_body(%{body: field}, request_body), do: %{field => request_body}
+  defp map_request_body(%{}, request_body), do: request_body
 
   @spec map_response_body(t() | map(), map()) :: map()
   def map_response_body(%{response_body: ""}, response_body), do: response_body
@@ -70,6 +69,8 @@ defmodule GRPC.Server.Transcode do
     Map.get(response_body, key)
   end
 
+  def map_response_body(%{}, response_body), do: response_body
+
   @spec map_path_bindings(map()) :: map()
   def map_path_bindings(bindings) when bindings == %{}, do: bindings