summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2019-01-11 17:43:14 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2019-01-11 17:43:14 +0100 |
commit | 992c6788db73837a503bdc3c8f8a17d6357c224e (patch) | |
tree | ae3d5a9fe441e9e889c408f9737ba3a6612374b7 /src | |
parent | e8ab45f453bf095a09672c1685315d8d52472f11 (diff) |
Got Dialyzer to yell at me again! Yay!
Diffstat (limited to 'src')
-rw-r--r-- | src/bounty/bnt_generate_player.erl | 4 | ||||
-rw-r--r-- | src/bounty/struct/bnt_bounty.erl | 93 |
2 files changed, 95 insertions, 2 deletions
diff --git a/src/bounty/bnt_generate_player.erl b/src/bounty/bnt_generate_player.erl index 73767b0..9e67527 100644 --- a/src/bounty/bnt_generate_player.erl +++ b/src/bounty/bnt_generate_player.erl @@ -15,8 +15,8 @@ -spec reserve_login (binary(), binary()) -> 'ok'. reserve_login (UsernameLC, EmailLC) -> Anyone = ataxia_security:allow_any(), - ok = ataxia_client:reserve(login_db, Anyone, Anyone, UsernameLC), - ok = ataxia_client:reserve(login_db, Anyone, Anyone, EmailLC), + ok = ataxia_client:reserve_at(login_db, Anyone, Anyone, UsernameLC), + ok = ataxia_client:reserve_at(login_db, Anyone, Anyone, EmailLC), ok. diff --git a/src/bounty/struct/bnt_bounty.erl b/src/bounty/struct/bnt_bounty.erl new file mode 100644 index 0000000..0d7df47 --- /dev/null +++ b/src/bounty/struct/bnt_bounty.erl @@ -0,0 +1,93 @@ +-module(bnt_bounty). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-type id() :: ataxia_id:type(). +-type job() :: {atom(), atom(), list(any())}. + +-record +( + bounty, + { + deadline :: ataxia_time:type(), + user :: ataxia_security:user(), + job :: job() + } +). + +-type type() :: #bounty{}. + +-export_type([type/0, id/0]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export +( + [ + generate/4, + execute/1 + ] +). + +-export +( + [ + get_deadline/1, + get_user/1, + get_job/1 + ] +). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec generate + ( + ataxia_security:user(), + ataxia_time:type(), + ataxia_time:type(), + job() + ) + -> 'ok'. +generate (User, NotBefore, Deadline, Job) -> + Janitor = ataxia_security:janitor(), + JanitorOnly = ataxia_security:allow_only(Janitor), + + Bounty = + { + deadline = Deadline, + user = User, + job = Job + }, + + {ok, _BountyID} = + ataxia_client:add + ( + bounty_db, + JanitorOnly, + JanitorOnly, + ataxia_lock:locked(User, NotBefore), + Bounty + ), + + ok. + +-spec execute (type()) -> any(). +execute (Bounty) -> + {Module, Function, Params} = Bounty#bounty.job, + erlang:apply(Module, Function, Params). + +-spec get_deadline (type()) -> ataxia_time:type(). +get_deadline (Bounty) -> Bounty#bounty.deadline. + +-spec get_user (type()) -> ataxia_security:user(). +get_user (Bounty) -> Bounty#bounty.user. + +-spec get_job (type()) -> job(). +get_job (Bounty) -> Bounty#bounty.job. |