diff options
author | Colin Okay <colin@cicadas.surf> | 2022-08-05 12:45:51 -0500 |
---|---|---|
committer | Colin Okay <colin@cicadas.surf> | 2022-08-05 12:45:51 -0500 |
commit | 71637c96bd277364306abebf4add4e34a93325ff (patch) | |
tree | 5a291f684e289c932c33b6c24cb79f2d5cce9739 /app/account.lisp | |
parent | 9a9f629068b4ffe7173bc92f12080685743dc6ab (diff) |
[add] account interface, updated asd file
Diffstat (limited to 'app/account.lisp')
-rw-r--r-- | app/account.lisp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/app/account.lisp b/app/account.lisp new file mode 100644 index 0000000..7d4b749 --- /dev/null +++ b/app/account.lisp @@ -0,0 +1,93 @@ +;;;; account.lisp + +(in-package :oneliners.cli.app ) + + +(defhandler account/login/handler (username password) + (ol:login username password)) + +(defun account/login/command () + (cli:make-command + :name "login" + :usage "<USERNAME> <PASSWORD>" + :description "obtains an API access key and stores it locally" + :handler #'account/login/command)) + +(defun account/logout/handler (cmd) + (declare (ignore cmd)) + (ol:revoke-access)) + +(defun account/logout/command () + (cli:make-command + :name "logout" + :description "revokes access for the currently stored key" + :handler #'account/logout/command)) + +(defun account/signature/handler (cmd) + (declare (ignore cmd)) + (ol:change-signature)) + +(defun account/signature/command () + (cli:make-command + :name "signature" + :description "a signature is text users seen when they do `ol account whois <you>`" + :handler #'account/signature/handler)) + +(defhandler account/password/handler (old new) + (ol:change-pw old new new)) + +(defun account/password/command () + (cli:make-command + :name "password" + :usage "<OLDPW> <NEWPW>" + :description "change your password" + :handler #'account/password/handler)) + +(defhandler account/whois/handler (nick) + (ol:show-contributor nick)) + +(defun account/whois/command () + (cli:make-command + :name "whois" + :description "View the user's signature, if they have one." + :handler #'account/whois/command)) + +(defun account/invite/handler (cmd) + (declare (ignore cmd)) + (ol:request-invite-code)) + +(defun account/invite/command () + (cli:make-command + :name "invite" + :description "request an invite token from the server" + :handler #'account/invite/handler)) + +(defhandler account/redeem/handler (token name password) + (ol:redeem-invite token name password)) + +(defun account/redeem/command () + (cli:make-command + :name "redeem" + :usage "<TOKEN> <NEW-USERNAME> <NEW-PASSWORD>" + :handler #'account/redeem/handler + :description "redeem an invite token to create a new contributor account")) + +(defun account/subcommands () + (list + (account/login/command) + (account/logout/command) + (account/signature/command) + (account/password/command) + (account/whois/command) + (account/invite/command) + (account/redeem/command))) + +(defun account/handler (cmd) + (cli:print-usage-and-exit cmd t)) + +(defun account/command () + (cli:make-command + :name "account" + :description "commands having to do with user accounts" + :handler #'account/handler + :sub-commands (account/subcommands))) |