@@ -9,7 +9,7 @@ defmodule GRPC.Transport.HTTP2 do
99 require Logger
1010
1111 def server_headers ( % { codec: GRPC.Codec.WebText = codec } ) do
12- % { "content-type" => "application/grpc-web-#{ codec . name ( ) } " }
12+ % { "content-type" => "application/grpc-web-#{ codec_name ( codec ) } " }
1313 end
1414
1515 # TO-DO: refactor when we add a GRPC.Codec.content_type callback
@@ -18,7 +18,7 @@ defmodule GRPC.Transport.HTTP2 do
1818 end
1919
2020 def server_headers ( % { codec: codec } ) do
21- % { "content-type" => "application/grpc+#{ codec . name ( ) } " }
21+ % { "content-type" => "application/grpc+#{ codec_name ( codec ) } " }
2222 end
2323
2424 @ spec server_trailers ( integer , String . t ( ) ) :: map
@@ -69,8 +69,11 @@ defmodule GRPC.Transport.HTTP2 do
6969 # Some gRPC implementations don't support application/grpc+xyz,
7070 # to avoid this kind of trouble, use application/grpc by default
7171 defp content_type ( _ , GRPC.Codec.Proto ) , do: "application/grpc"
72- defp content_type ( _ , codec = GRPC.Codec.WebText ) , do: "application/grpc-web-#{ codec . name ( ) } "
73- defp content_type ( _ , codec ) , do: "application/grpc+#{ codec . name ( ) } "
72+
73+ defp content_type ( _ , codec = GRPC.Codec.WebText ) ,
74+ do: "application/grpc-web-#{ codec_name ( codec ) } "
75+
76+ defp content_type ( _ , codec ) , do: "application/grpc+#{ codec_name ( codec ) } "
7477
7578 def extract_metadata ( headers ) do
7679 headers
@@ -105,13 +108,13 @@ defmodule GRPC.Transport.HTTP2 do
105108 defp append_encoding ( headers , _ ) , do: headers
106109
107110 defp append_compressor ( headers , compressor ) when not is_nil ( compressor ) do
108- [ { "grpc-encoding" , compressor . name ( ) } | headers ]
111+ [ { "grpc-encoding" , compressor_name ( compressor ) } | headers ]
109112 end
110113
111114 defp append_compressor ( headers , _ ) , do: headers
112115
113116 defp append_accepted_compressors ( headers , [ _ ] = compressors ) do
114- encoding = Enum . map_join ( compressors , "," , & & 1 . name ( ) )
117+ encoding = Enum . map_join ( compressors , "," , & compressor_name / 1 )
115118 [ { "grpc-accept-encoding" , encoding } | headers ]
116119 end
117120
@@ -165,4 +168,10 @@ defmodule GRPC.Transport.HTTP2 do
165168 defp is_metadata ( key ) do
166169 ! is_reserved_header ( key )
167170 end
171+
172+ defp codec_name ( codec ) when is_atom ( codec ) , do: apply ( codec , :name , [ ] )
173+ defp codec_name ( % { name: name } ) , do: name
174+
175+ defp compressor_name ( compressor ) when is_atom ( compressor ) , do: apply ( compressor , :name , [ ] )
176+ defp compressor_name ( % { name: name } ) , do: name
168177end
0 commit comments