-module(cake@adapter@postgres). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([with_connection/6, read_query_to_prepared_statement/1, write_query_to_prepared_statement/1, execute_raw_sql/2, run_read_query/3, run_write_query/3, run_query/3]). -file("/Users/leo/local-dev/gleam/gleam-cake-gleam_pgo/src/cake/adapter/postgres.gleam", 22). -spec with_connection( binary(), integer(), binary(), gleam@option:option(binary()), binary(), fun((gleam@pgo:connection()) -> IXK) ) -> IXK. with_connection(Host, Port, Username, Password, Database, Callback) -> Connection = begin _pipe = erlang:setelement( 4, erlang:setelement( 6, erlang:setelement( 5, erlang:setelement( 3, erlang:setelement(2, gleam@pgo:default_config(), Host), Port ), Username ), Password ), Database ), gleam_pgo_ffi:connect(_pipe) end, Value = Callback(Connection), gleam_pgo_ffi:disconnect(Connection), Value. -file("/Users/leo/local-dev/gleam/gleam-cake-gleam_pgo/src/cake/adapter/postgres.gleam", 49). -spec read_query_to_prepared_statement(cake@internal@read_query:read_query()) -> cake@internal@prepared_statement:prepared_statement(). read_query_to_prepared_statement(Query) -> _pipe = Query, cake@dialect@postgres_dialect:read_query_to_prepared_statement(_pipe). -file("/Users/leo/local-dev/gleam/gleam-cake-gleam_pgo/src/cake/adapter/postgres.gleam", 57). -spec write_query_to_prepared_statement( cake@internal@write_query:write_query(any()) ) -> cake@internal@prepared_statement:prepared_statement(). write_query_to_prepared_statement(Query) -> _pipe = Query, cake@dialect@postgres_dialect:write_query_to_prepared_statement(_pipe). -file("/Users/leo/local-dev/gleam/gleam-cake-gleam_pgo/src/cake/adapter/postgres.gleam", 126). -spec execute_raw_sql(binary(), gleam@pgo:connection()) -> {ok, gleam@pgo:returned(gleam@dynamic:dynamic_())} | {error, gleam@pgo:query_error()}. execute_raw_sql(Sql_string, Db_connection) -> _pipe = Sql_string, gleam@pgo:execute(_pipe, Db_connection, [], fun gleam@dynamic:dynamic/1). -file("/Users/leo/local-dev/gleam/gleam-cake-gleam_pgo/src/cake/adapter/postgres.gleam", 134). -spec cake_param_to_client_param(cake@param:param()) -> gleam@pgo:value(). cake_param_to_client_param(Param) -> case Param of {bool_param, Param@1} -> gleam_pgo_ffi:coerce(Param@1); {float_param, Param@2} -> gleam_pgo_ffi:coerce(Param@2); {int_param, Param@3} -> gleam_pgo_ffi:coerce(Param@3); {string_param, Param@4} -> gleam_pgo_ffi:coerce(Param@4); null_param -> gleam_pgo_ffi:null() end. -file("/Users/leo/local-dev/gleam/gleam-cake-gleam_pgo/src/cake/adapter/postgres.gleam", 63). -spec run_read_query( cake@internal@read_query:read_query(), fun((gleam@dynamic:dynamic_()) -> {ok, IXN} | {error, list(gleam@dynamic:decode_error())}), gleam@pgo:connection() ) -> {ok, list(IXN)} | {error, gleam@pgo:query_error()}. run_read_query(Query, Decoder, Db_connection) -> Prepared_statement = begin _pipe = Query, read_query_to_prepared_statement(_pipe) end, Sql_string = begin _pipe@1 = Prepared_statement, cake:get_sql(_pipe@1) end, Db_params = begin _pipe@2 = Prepared_statement, _pipe@3 = cake:get_params(_pipe@2), gleam@list:map(_pipe@3, fun cake_param_to_client_param/1) end, Result = begin _pipe@4 = Sql_string, gleam@pgo:execute(_pipe@4, Db_connection, Db_params, Decoder) end, case Result of {ok, {returned, _, V}} -> {ok, V}; {error, E} -> {error, E} end. -file("/Users/leo/local-dev/gleam/gleam-cake-gleam_pgo/src/cake/adapter/postgres.gleam", 87). -spec run_write_query( cake@internal@write_query:write_query(IXS), fun((gleam@dynamic:dynamic_()) -> {ok, IXS} | {error, list(gleam@dynamic:decode_error())}), gleam@pgo:connection() ) -> {ok, list(IXS)} | {error, gleam@pgo:query_error()}. run_write_query(Query, Decoder, Db_connection) -> Prepared_statement = begin _pipe = Query, write_query_to_prepared_statement(_pipe) end, Sql_string = begin _pipe@1 = Prepared_statement, cake:get_sql(_pipe@1) end, Db_params = begin _pipe@2 = Prepared_statement, _pipe@3 = cake:get_params(_pipe@2), gleam@list:map(_pipe@3, fun cake_param_to_client_param/1) end, Result = begin _pipe@4 = Sql_string, gleam@pgo:execute(_pipe@4, Db_connection, Db_params, Decoder) end, case Result of {ok, {returned, _, V}} -> {ok, V}; {error, E} -> {error, E} end. -file("/Users/leo/local-dev/gleam/gleam-cake-gleam_pgo/src/cake/adapter/postgres.gleam", 113). -spec run_query( cake:cake_query(IYA), fun((gleam@dynamic:dynamic_()) -> {ok, IYA} | {error, list(gleam@dynamic:decode_error())}), gleam@pgo:connection() ) -> {ok, list(IYA)} | {error, gleam@pgo:query_error()}. run_query(Query, Decoder, Db_connection) -> case Query of {cake_read_query, Read_query} -> _pipe = Read_query, run_read_query(_pipe, Decoder, Db_connection); {cake_write_query, Write_query} -> _pipe@1 = Write_query, run_write_query(_pipe@1, Decoder, Db_connection) end.