@@ -28,18 +28,13 @@ defmodule DiffWeb.PageController do
2828 end
2929 end
3030
31- def expand_context ( conn , % { "file_name" => file_name } = params ) do
32- % {
33- "version" => version ,
34- "package" => package ,
35- "from_line" => from_line ,
36- "direction" => direction
37- } = params
38-
39- case parse_version ( version ) do
31+ def expand_context ( conn , % { "file_name" => _file_name } = params ) do
32+ case parse_version ( params [ "version" ] ) do
4033 { :ok , version } ->
4134 version = to_string ( version )
42- do_expand_context ( conn , package , version , file_name , from_line , direction )
35+ params = Map . update! ( params , "version" , fn _ -> version end )
36+
37+ do_expand_context ( conn , params )
4338
4439 :error ->
4540 conn
@@ -96,10 +91,22 @@ defmodule DiffWeb.PageController do
9691 end
9792 end
9893
99- defp do_expand_context ( conn , package , version , file_name , from_line , direction ) do
100- case Diff.Hex . get_chunk ( package , version , file_name , from_line , direction ) do
94+ defp do_expand_context ( conn , params ) do
95+ chunk_extractor_params =
96+ for { key , val } <- params , into: % { } do
97+ { String . to_existing_atom ( key ) , val }
98+ end
99+
100+ case Diff.Hex . get_chunk ( chunk_extractor_params ) do
101101 { :ok , chunk } ->
102- json ( conn , % { chunk: chunk } )
102+ rendered_chunk =
103+ Phoenix.View . render_to_string ( DiffWeb.RenderView , "render_context_chunk.html" ,
104+ chunk: chunk
105+ )
106+
107+ conn
108+ |> put_status ( 200 )
109+ |> json ( % { chunk: rendered_chunk , lines: length ( chunk ) } )
103110
104111 { :error , % { errors: errors } } ->
105112 conn
0 commit comments