Current section

Files

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

src/cake@internal@example@cake_write.erl

-module(cake@internal@example@cake_write).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([exec_dummy_update/0, exec_dummy_delete/0, exec_dummy_insert/0, main/0]).
-spec exec_dummy_update() -> nil.
exec_dummy_update() ->
nil.
-spec exec_dummy_delete() -> nil.
exec_dummy_delete() ->
nil.
-spec drop_cats_table_if_exists() -> binary().
drop_cats_table_if_exists() ->
<<"DROP TABLE IF EXISTS cats;"/utf8>>.
-spec create_cats_table() -> binary().
create_cats_table() ->
<<"CREATE TABLE cats (
name text,
age int,
is_wild boolean,
owner_id int
);"/utf8>>.
-spec run_write_on_postgres(
cake@internal@write_query:write_query(any()),
fun((gleam@dynamic:dynamic_()) -> {ok, PEO} |
{error, list(gleam@dynamic:decode_error())})
) -> {ok, list(PEO)} | {error, gleam@pgo:query_error()}.
run_write_on_postgres(Query, Query_decoder) ->
cake@adapter@postgres:with_connection(
fun(Conn) ->
_ = begin
_pipe = drop_cats_table_if_exists(),
cake@adapter@postgres:execute_raw_sql(_pipe, Conn)
end,
_ = begin
_pipe@1 = create_cats_table(),
cake@adapter@postgres:execute_raw_sql(_pipe@1, Conn)
end,
_pipe@2 = Query,
cake@adapter@postgres:run_write(_pipe@2, Query_decoder, Conn)
end
).
-spec run_write_on_sqlite(
cake@internal@write_query:write_query(any()),
fun((gleam@dynamic:dynamic_()) -> {ok, PES} |
{error, list(gleam@dynamic:decode_error())})
) -> {ok, list(PES)} | {error, sqlight:error()}.
run_write_on_sqlite(Query, Query_decoder) ->
cake@adapter@sqlite:with_memory_connection(
fun(Conn) ->
_ = begin
_pipe = drop_cats_table_if_exists(),
cake@adapter@sqlite:execute_raw_sql(_pipe, Conn)
end,
_ = begin
_pipe@1 = create_cats_table(),
cake@adapter@sqlite:execute_raw_sql(_pipe@1, Conn)
end,
_pipe@2 = Query,
cake@adapter@sqlite:run_write(_pipe@2, Query_decoder, Conn)
end
).
-spec exec_dummy_insert() -> {ok, list(gleam@dynamic:dynamic_())} |
{error, gleam@pgo:query_error()}.
exec_dummy_insert() ->
cake@internal@stdlib@iox:print_dashes(),
Query_decoder = fun gleam@dynamic:dynamic/1,
cake@internal@stdlib@iox:println(<<"SQLite"/utf8>>),
_ = begin
_pipe@1 = run_write_on_sqlite(
begin
_pipe = [cake@internal@example@cake_write_queries:new()],
cake@internal@example@cake_write_queries:to_insert_query(_pipe)
end,
Query_decoder
),
_pipe@2 = cake@internal@stdlib@iox:print_tap(
_pipe@1,
<<"Result: "/utf8>>
),
cake@internal@stdlib@iox:dbg(_pipe@2)
end,
gleam_erlang_ffi:sleep(100),
cake@internal@stdlib@iox:println(<<"Postgres"/utf8>>),
_ = begin
_pipe@4 = run_write_on_postgres(
begin
_pipe@3 = [cake@internal@example@cake_write_queries:new(),
cake@internal@example@cake_write_queries:new(),
cake@internal@example@cake_write_queries:new()],
cake@internal@example@cake_write_queries:to_insert_query(
_pipe@3
)
end,
Query_decoder
),
_pipe@5 = cake@internal@stdlib@iox:print_tap(
_pipe@4,
<<"Result: "/utf8>>
),
cake@internal@stdlib@iox:dbg(_pipe@5)
end.
-spec main() -> nil.
main() ->
gleam_erlang_ffi:sleep(100),
_ = exec_dummy_insert(),
gleam_erlang_ffi:sleep(100),
_ = exec_dummy_update(),
gleam_erlang_ffi:sleep(100),
_ = exec_dummy_delete(),
gleam_erlang_ffi:sleep(100),
nil.