summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2019-01-11 18:25:05 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2019-01-11 18:25:05 +0100 |
commit | 8fe85396104a2eeddda620a670a275a8ace1b605 (patch) | |
tree | ce9cfa009a819f553beedff8d9f7e2328b89d0ad /src/bounty/struct | |
parent | 992c6788db73837a503bdc3c8f8a17d6357c224e (diff) |
...
Diffstat (limited to 'src/bounty/struct')
-rw-r--r-- | src/bounty/struct/bnt_bounty.erl | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/src/bounty/struct/bnt_bounty.erl b/src/bounty/struct/bnt_bounty.erl index 0d7df47..4ede9b0 100644 --- a/src/bounty/struct/bnt_bounty.erl +++ b/src/bounty/struct/bnt_bounty.erl @@ -27,7 +27,7 @@ ( [ generate/4, - execute/1 + resolve/0 ] ). @@ -54,10 +54,11 @@ ataxia_time:type(), job() ) - -> 'ok'. + -> {'ok', ataxia_id:type()}. generate (User, NotBefore, Deadline, Job) -> Janitor = ataxia_security:janitor(), JanitorOnly = ataxia_security:allow_only(Janitor), + JanitorAndUser = ataxia_security:add_access(User, JanitorOnly), Bounty = { @@ -66,22 +67,34 @@ generate (User, NotBefore, Deadline, Job) -> job = Job }, - {ok, _BountyID} = + {ok, BountyID} = ataxia_client:add ( bounty_db, - JanitorOnly, - JanitorOnly, + JanitorAndUser, + JanitorAndUser, ataxia_lock:locked(User, NotBefore), Bounty ), - ok. + {ok, BountyID}. + +-spec resolve () -> type(). +resolve () -> + Lock = ataxia_lock:locked(ataxia_security:admin(), 60), + + {ok, BountyID, Bounty} = + ataxia_client:update_and_fetch_any + ( + bounty_db, + ataxia_security:janitor(), + ataxic:update_lock(ataxic:constant(Lock)), + ataxic:constant(true) + ), --spec execute (type()) -> any(). -execute (Bounty) -> {Module, Function, Params} = Bounty#bounty.job, - erlang:apply(Module, Function, Params). + + erlang:apply(Module, Function, [BountyID|Params]). -spec get_deadline (type()) -> ataxia_time:type(). get_deadline (Bounty) -> Bounty#bounty.deadline. |