@@ -58,20 +58,36 @@ defmodule CoreWeb.FunctionController do
5858 { :error , :bad_params }
5959 else
6060 with { :ok , code } <- File . read ( tmp_path ) ,
61- { :ok , module } <- Modules . get_module_by_name ( module_name ) ,
62- { :ok , % Function { } = function } <-
63- % { "name" => fn_name , "code" => code }
61+ { :ok , module } <- Modules . get_module_by_name ( module_name ) do
62+ case % { "name" => fn_name , "code" => code }
6463 |> Map . put_new ( "module_id" , module . id )
6564 |> Functions . create_function ( ) do
66- event_results = Events . connect_events ( fn_name , module_name , events_req )
67- sinks_results = DataSink . plug_data_sinks ( fn_name , module_name , sinks_req )
65+ { :ok , % Function { } = function } ->
66+ Logger . info (
67+ "Function Controller: function #{ module_name } /#{ fn_name } created successfully."
68+ )
6869
69- { status , render_params } =
70- build_render_params ( % { function: function } , event_results , sinks_results , :created )
70+ event_results = Events . connect_events ( fn_name , module_name , events_req )
71+ sinks_results = DataSink . plug_data_sinks ( fn_name , module_name , sinks_req )
7172
72- conn
73- |> put_status ( status )
74- |> render ( "show.json" , render_params )
73+ { status , render_params } =
74+ build_render_params ( % { function: function } , event_results , sinks_results , :created )
75+
76+ conn
77+ |> put_status ( status )
78+ |> render ( "show.json" , render_params )
79+
80+ { :error , % { errors: [ function_module_index_constraint: { "has already been taken" , _ } ] } } ->
81+ Logger . error ( "Function Controller: #{ module_name } /#{ fn_name } already exists." )
82+ { :error , :conflict }
83+
84+ e ->
85+ Logger . error (
86+ "Function Controller: error while creating #{ module_name } /#{ fn_name } : #{ inspect ( e ) } ."
87+ )
88+
89+ e
90+ end
7591 end
7692 end
7793 end
0 commit comments