Current section

Files

Jump to
cake src cake@internal@example@cake_write_queries.erl
Raw

src/cake@internal@example@cake_write_queries.erl

-module(cake@internal@example@cake_write_queries).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([new/0, to_insert_query/1]).
-export_type([wibble/0]).
-type wibble() :: {wibble, binary(), integer(), boolean()}.
-spec new() -> wibble().
new() ->
{wibble, <<"Wibble"/utf8>>, 42, true}.
-spec caster(wibble()) -> cake@internal@write_query:insert_row().
caster(Wibble) ->
{wibble, Name, Age, Is_wild} = Wibble,
{insert_row,
[{insert_param,
<<"name"/utf8>>,
begin
_pipe = Name,
cake@param:string(_pipe)
end},
{insert_param,
<<"age"/utf8>>,
begin
_pipe@1 = Age,
cake@param:int(_pipe@1)
end},
{insert_param,
<<"is_wild"/utf8>>,
begin
_pipe@2 = Is_wild,
cake@param:bool(_pipe@2)
end}]}.
-spec to_insert_query(list(wibble())) -> cake@internal@write_query:write_query(wibble()).
to_insert_query(Wibbles) ->
_pipe = {insert,
{insert_into_table, <<"cats"/utf8>>},
{insert_columns, [<<"name"/utf8>>, <<"age"/utf8>>, <<"is_wild"/utf8>>]},
no_insert_modifier,
{insert_source_records, Wibbles, fun caster/1},
insert_conflict_error,
no_returning,
no_comment},
cake@internal@write_query:to_insert_query(_pipe).