From 917f0804a3a52cc70ccc3e49117f142eb6f4d584 Mon Sep 17 00:00:00 2001 From: Marcos Benevides Date: Tue, 28 Jan 2025 12:31:09 -0300 Subject: [PATCH] feat: move to erlandono (#81) * feat: (server) move to erlandono and ignore types related to postgres_m --- server/apps/server/src/registry.erl | 9 +++++++-- server/apps/server/src/server.app.src | 2 +- server/lib/database/rebar.config | 2 +- server/lib/database/src/database.app.src | 2 +- server/lib/database/src/postgres_m.erl | 21 +++++++++++--------- server/rebar-deps.nix | 25 ++++++++++++------------ server/rebar.config | 2 +- server/rebar.lock | 6 +++--- 8 files changed, 39 insertions(+), 30 deletions(-) diff --git a/server/apps/server/src/registry.erl b/server/apps/server/src/registry.erl index 770720d..c36aca0 100644 --- a/server/apps/server/src/registry.erl +++ b/server/apps/server/src/registry.erl @@ -4,8 +4,13 @@ -compile({parse_transform, do}). --spec check_user(map(), epgsql:connection()) -> Result - when Email :: string(), +%% TODO: fix this type +-dialyzer({nowarn_function, [check_user/2]}). + +-spec check_user(Map, epgsql:connection()) -> Result + when + Map :: #{'password':=_, 'username':=_, _=>_}, + Email :: string(), Message :: string(), Result :: {ok, Email} | {ok, any(), any()} | {ok, any(), any(), any()} | {error, Message}. check_user(#{username := Username, password := Password}, Connection) -> diff --git a/server/apps/server/src/server.app.src b/server/apps/server/src/server.app.src index 68896ff..a67780e 100644 --- a/server/apps/server/src/server.app.src +++ b/server/apps/server/src/server.app.src @@ -9,7 +9,7 @@ sasl, csv, epgsql, - erlando + erlandono ]}, {env, []}, {modules, []}, diff --git a/server/lib/database/rebar.config b/server/lib/database/rebar.config index 9e90b0c..305c8bc 100644 --- a/server/lib/database/rebar.config +++ b/server/lib/database/rebar.config @@ -2,5 +2,5 @@ {deps, [ {pure_migrations, "1.3.0"}, {epgsql, "4.7.1"}, - {erlando, "3.1.1"} + {erlandono, "3.1.3"} ]}. diff --git a/server/lib/database/src/database.app.src b/server/lib/database/src/database.app.src index f5f812c..351a951 100644 --- a/server/lib/database/src/database.app.src +++ b/server/lib/database/src/database.app.src @@ -7,7 +7,7 @@ stdlib, epgsql, sasl, - erlando + erlandono ]}, {env, []}, {modules, [database, database_utils, postgres_m]}, diff --git a/server/lib/database/src/postgres_m.erl b/server/lib/database/src/postgres_m.erl index 0e4110d..a28200e 100644 --- a/server/lib/database/src/postgres_m.erl +++ b/server/lib/database/src/postgres_m.erl @@ -1,20 +1,23 @@ -module(postgres_m). +%% TODO: Create our own behaviour that has better epgsql types +%% to feed it into return, fail and >>=. -behaviour(monad). -export(['>>='/2, return/1, fail/1]). --dialyzer({nowarn_function, '>>='/2}). +%% TODO: fix these types +-dialyzer({nowarn_function, ['>>='/2, return/1, fail/1]}). -%-type monad(_A) :: -% {{ok, any(), any()}, select} | -% {{ok, any()}, delete} | -% {{ok, any()}, insert} | -% {{ok, any(), any(), any()}, insert} | -% {{ok, any()}, update} | -% {{error, any()}, any()}. +-type monad(_A) :: + {{ok, any(), any()}, select} | + {{ok, any()}, delete} | + {{ok, any()}, insert} | + {{ok, any(), any(), any()}, insert} | + {{ok, any()}, update} | + {{error, any()}, any()}. -%-include_lib("erlando/include/monad_specs.hrl"). +-include_lib("erlandono/include/monad_specs.hrl"). return(X) -> {ok, X}. diff --git a/server/rebar-deps.nix b/server/rebar-deps.nix index 174ea3c..c3bd50a 100644 --- a/server/rebar-deps.nix +++ b/server/rebar-deps.nix @@ -1,14 +1,6 @@ # Generated by rebar3_nix -let - fetchOnly = { src, ... }: src; -in -{ - builder ? fetchOnly, - fetchHex, - fetchgit, - fetchFromGitHub, - overrides ? (x: y: { }), -}: +let fetchOnly = { src, ... }: src; +in { builder ? fetchOnly, fetchHex, fetchgit, fetchFromGitHub, overrides ? (x: y: { }) }: let self = packages // (overrides self packages); packages = with self; { @@ -32,6 +24,16 @@ let }; beamDeps = [ ]; }; + erlandono = builder { + name = "erlandono"; + version = "3.1.3"; + src = fetchHex { + pkg = "erlandono"; + version = "3.1.3"; + sha256 = "sha256-K/yvZZwAMsW1zv1ILrvbohqyAdFXmlRIXgkZX8IJJXc="; + }; + beamDeps = [ ]; + }; erlando = builder { name = "erlando"; version = "3.1.1"; @@ -63,5 +65,4 @@ let beamDeps = [ pc ]; }; }; -in -self +in self diff --git a/server/rebar.config b/server/rebar.config index d337238..74ee1ce 100644 --- a/server/rebar.config +++ b/server/rebar.config @@ -12,7 +12,7 @@ {deps, [ {epgsql, "4.7.1"}, {pc, "1.15.0"}, - {erlando, "3.1.1"}, + {erlandono, "3.1.3"}, {csv, "3.0.3", {pkg, csve}} ]}. diff --git a/server/rebar.lock b/server/rebar.lock index 4f55803..a320fb1 100644 --- a/server/rebar.lock +++ b/server/rebar.lock @@ -1,20 +1,20 @@ {"1.2.0", [{<<"csv">>,{pkg,<<"csve">>,<<"3.0.3">>},0}, {<<"epgsql">>,{pkg,<<"epgsql">>,<<"4.7.1">>},0}, - {<<"erlando">>,{pkg,<<"erlando">>,<<"3.1.1">>},0}, + {<<"erlandono">>,{pkg,<<"erlandono">>,<<"3.1.3">>},0}, {<<"pc">>,{pkg,<<"pc">>,<<"1.15.0">>},0}, {<<"pure_migrations">>,{pkg,<<"pure_migrations">>,<<"1.3.0">>},0}]}. [ {pkg_hash,[ {<<"csv">>, <<"69E7D9B3FDC72016644368762C6A3E6CBFEB85BCCADBF1BD99AB6C827E360E04">>}, {<<"epgsql">>, <<"D4E47CAE46C18C8AFA88E34D59A9B4BAE16368D7CE1EB3DA24FA755EB28393EB">>}, - {<<"erlando">>, <<"50E54F9A9DFEC564DDFEB7FC7129F80F491856F5E07686F405CEF4E970BDFE46">>}, + {<<"erlandono">>, <<"8B5562D3DDC3A89EB513973D727B585513DC0A3A95E65A0E343957DD0ED655B9">>}, {<<"pc">>, <<"0DE7D4DF1BB23897E27965FC134DC63156DD2E5B512A9536CB7004D984400A45">>}, {<<"pure_migrations">>, <<"B758A62A9EDD6C1B40B668F4D6CE9E5588DBD4D99A4469BCE46BC7089B594AF7">>}]}, {pkg_hash_ext,[ {<<"csv">>, <<"741D1A55AABADAA3E0FE13051050101A73E90C4570B9F9403A939D9546813521">>}, {<<"epgsql">>, <<"B6D86B7DC42C8555B1D4E20880E5099D6D6D053148000E188E548F98E4E01836">>}, - {<<"erlando">>, <<"9633CB4978DBD78827FA76EA4C3B0BD24CFBD4DD9AF48088E922E7115494A344">>}, + {<<"erlandono">>, <<"2BFCAF659C0032C5B5CEFD482EBBDBA21AB201D1579A54485E09195FC2092577">>}, {<<"pc">>, <<"4C0FAD4F6437CAE353D517DA218FE78347B8FFA44B9817887494CAAAE54595B3">>}, {<<"pure_migrations">>, <<"00269DE0A1A9BBE1B7681EC1F3FA59EE9D8081582226A94C633E6F94B5C88BC3">>}]} ].