Packages

A delightful ORM (?) for Gleam! 🍳

Current section

Files

Jump to
ormlette src ormlette@repo@insert.erl
Raw

src/ormlette@repo@insert.erl

-module(ormlette@repo@insert).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([insert/2]).
-file("/Users/ashercohen/Desktop/gleam/ormlette/src/ormlette/repo/insert.gleam", 12).
-spec insert(ormlette@changesets@changesets:changeset(), gleam@pgo:connection()) -> {ok,
binary()} |
{error, binary()}.
insert(Changeset, Db) ->
Keys = gleam@dict:keys(erlang:element(3, Changeset)),
Values = gleam@dict:values(erlang:element(3, Changeset)),
Prepstat = begin
_pipe@1 = [begin
_pipe = gleam@list:map(
Values,
fun(V) -> ormlette@repo@utils:wrap_cake(V) end
),
cake@insert:row(_pipe)
end],
_pipe@2 = cake@insert:from_values(
erlang:element(2, Changeset),
Keys,
_pipe@1
),
_pipe@3 = cake@insert:to_query(_pipe@2),
cake@dialect@postgres_dialect:write_query_to_prepared_statement(_pipe@3)
end,
Results = begin
_pipe@4 = {cake:get_sql(Prepstat), cake:get_params(Prepstat)},
ormlette@query@run:run(_pipe@4, Db, fun gleam@dynamic:dynamic/1)
end,
case Results of
{ok, _} ->
{ok, <<"WORKED"/utf8>>};
{error, _} ->
{error, <<"Didnt work :("/utf8>>}
end.