-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlinkdemo.lisp
57 lines (47 loc) · 1.45 KB
/
linkdemo.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
;;;; linkdemo.lisp
(in-package #:linkdemo)
;;; "linkdemo" goes here. Hacks and glory await!
;;;
(define-route home ("")
(list :title "Linkdemo"
:body (home-page (get-all-links (logged-on-p)))))
;(define-route login ("login")
; (list :title "Log in"
; :body (login-form)))
;
;(define-route login/post ("login" :method :post)
; (let ((user (auth-user (hunchentoot:post-parameter "username")
; (hunchentoot:post-parameter "password"))))
; (if user
; (log-in user)
; (redirect 'login))))
;
;(define-route register ("register")
; (list :title "register"
; :body (register-form)))
;
;(define-route register/post ("register" :method :post)
; (let ((user (register-user (hunchentoot:post-parameter "username")
; (hunchentoot:post-parameter "password"))))
; (if user
; (log-in user)
; (redirect 'register))))
;
;(define-route logout ("logout")
; (log-out))
;
(define-route submit ("submit")
(list :title "Submit a link"
:body (submit-form)))
(define-route submit/post ("submit" :method :post)
(let ((link (post-link (hunchentoot:post-parameter "url")
(hunchentoot:post-parameter "title")
(logged-on-p))))
(if link
(redirect 'home)
(redirect 'submit))))
(define-route upvote-link ("upvote/:id")
(:sift-variables (id #'parse-integer))
(when (logged-on-p)
(upvote id (logged-on-p)))
(redirect 'home))