registrar

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit e9a1fdf9dbe639267bc352c8b5a67935f1008668
parent df96999fba9553b6c85770754ad14a11ed30fdeb
Author: Juan F. Meleiro <juan@juanmeleiro.mat.br>
Date:   Fri,  8 Sep 2023 12:48:46 -0300

Move registration logic to lib

Diffstat:
Mlib/registration.lua | 34+++++++++++++++++++++++++++++++++-
Mregistrar | 29++++++-----------------------
2 files changed, 39 insertions(+), 24 deletions(-)

diff --git a/lib/registration.lua b/lib/registration.lua @@ -39,7 +39,39 @@ function _M.deregister(args, players, log) end function _M.register(args, players, log, ts) - return + local exists = nil + -- Check if player name exists + for p, h in pairs(players) do + if table.query(h, function (x) return x.name == args.name end) then + if table.query(h, function (x) return x.reason == "s" end) then + die(string.format("Error: player '%s' exists and is registered.", p)) + else + exists = p + break + end + end + end + if exists then + if yn(string.format("Player exists under name '%s'. Proceed? [yn] ", exists)) and not args.p then + players[args.name] = players[exists] + players[exists] = nil + end + else + players[args.name] = {} + end + local reg = { + name = args.name, + registration = os.date("%Y-%m-%d", args.date), + active = true, + reason = "s", + contact = args.contact, + latest = os.date("%Y-%m-%d", args.date) + } + if not args.p then + table.insert(players[args.name], reg) + else + io.write(pprint.pprint(reg)) + end end return _M diff --git a/registrar b/registrar @@ -25,7 +25,11 @@ deregister_cmd:argument("date", "Time stamp of deregistration (seconds after epo :convert(tonumber) deregister_cmd:option("-m", "Message ID of deregistration (without 'message://' prefix)") -parser:command("register", "Register player") +local register_cmd = parser:command("register", "Register player") +register_cmd:argument("name", "The name of the player") +register_cmd:argument("date", "Time stamp of registration (seconds after epoch)") +register_cmd:option("-m", "Message ID of registration (without 'message://' prefix)") + parser:command("activate", "Activate player") parser:command("deactivate", "Deactivate player") parser:command("rename", "Rename player") @@ -44,8 +48,6 @@ local log = decodewith(json.decode, fns.log) -- Process --- commands[args.command](fns, args, players, log) - if args.command == "monthly" then local hist = io.open(fns.history, "w") @@ -125,26 +127,7 @@ elseif args.command == "birthday" then io.write("Birthdays not implemented. Use registrar.fish\n") elseif args.command == "register" then - local exists = false - -- Check if player name exists - for p, h in pairs(players) do - for _,e in ipairs(h) do - if e.name == args.name then - exists = true - break - end - end - end - -- If not, register - players[args.name] = players[args.name] or {} - table.insert(players[args.name], {{ - name = args.name, - registration = args.date, - active = true, - reason = "s", - contact = args.contact - }}) - + registration.register(args, players, log) elseif args.command == "deregister" then registration.deregister(args, players, log) else