diff options
author | David Barksdale <amatus@amatus.name> | 2015-12-30 16:14:29 -0600 |
---|---|---|
committer | David Barksdale <amatus@amatus.name> | 2015-12-30 16:14:29 -0600 |
commit | 9c09e8189f04fe2e3d88b00f750f61800b47541e (patch) | |
tree | 2c6d351775beee60cb459f4ff4b640689d085702 /src/app/api.clj | |
parent | 8e92287880895931d077baf1a9f05f88b7371c7c (diff) |
Login, flag submission, table style
Diffstat (limited to 'src/app/api.clj')
-rw-r--r-- | src/app/api.clj | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/app/api.clj b/src/app/api.clj index e83f187..27ed9a4 100644 --- a/src/app/api.clj +++ b/src/app/api.clj @@ -4,3 +4,23 @@ (defrpc get-scoreboard [] (db/get :scoreboard)) + +(defrpc check-token [token] + {:rpc/pre (contains? (db/get :tokens) token)} + true) + +(defrpc set-name! [token name] + {:rpc/pre (contains? (db/get :tokens) token)} + (db/update! :scoreboard + assoc-in + [(first (.split token "-")) :name] + (apply str (take 32 name)))) + +(defrpc submit-flag! [token flag] + {:rpc/pre (and (contains? (db/get :tokens) token) + (contains? (db/get :flags) flag))} + (let [problem (db/get-in :flags [flag])] + (db/update! :scoreboard + assoc-in + [(first (.split token "-")) :scores problem] + :solved))) |