Current section
Files
Jump to
Current section
Files
src/kb_dtl_util.erl
%%
%% Copyright 2013 Joaquim Rocha
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%
-module(kb_dtl_util).
-include("kill_bill.hrl").
%% ====================================================================
%% API functions
%% ====================================================================
-export([execute/4, execute/3]).
execute(Dtl, Args, #kb_request{context=Context, static=Static}) ->
Options = [{context, Context}, {static, Static}],
execute_dtl(Dtl, Args, Options).
execute(Dtl, none, Args, Req) -> execute(Dtl, Args, Req);
execute(Dtl, Dict, Args, #kb_request{context=Context, static=Static}) ->
Options = [
{resource, Dict},
{context, Context},
{static, Static}
],
execute_dtl(Dtl, Args, Options).
%% ====================================================================
%% Internal functions
%% ====================================================================
execute_dtl(Dtl, Args, Options) ->
try Dtl:render(Args, Options) of
{ok, IOList} -> {ok, IOList};
{error, Err} -> {error, Err}
catch
Type:Error ->
error_logger:error_msg("KB: Error executing DTL ~p: [~p:~p]\n", [Dtl, Type, Error]),
{error, not_found}
end.