0
;; limitations under the License.
0
-(set $sessionCookies (dict))
0
+(set sessionCookies (dict))
0
- (set sessionCookieName ((request cookies) "session"))
0
- (set sessionCookie (if sessionCookieName (then ($sessionCookies sessionCookieName)) (else nil)))
0
+ (set sessionCookieName ((REQUEST cookies) "session"))
0
+ (set sessionCookie (if sessionCookieName (then (sessionCookies sessionCookieName)) (else nil)))
0
(set user (sessionCookie user))
0
+ (
RESPONSE setValue:"Friends" forKey:"TITLE")
0
(set template <<-TEMPLATE
0
<p>Let's make a list.</p>
0
-<% (
$friends each: (do (friend) %>
0
+<% (
friends each: (do (friend) %>
0
<% (set deletion ((dict "name" (friend "name")) urlQueryString)) %>
0
<li><%= (friend "name") %> (<%= (friend "email") %>) (<a href="/delete?<%= deletion %>">X</a>)</li>
0
@@ -52,7 +52,7 @@ TEMPLATE)
0
+ (
RESPONSE setValue:"Log in" forKey:"TITLE")
0
<form action="/login" method="post">
0
@@ -64,21 +64,21 @@ HTML)
0
- (set post (
request post))
0
+ (set post (
REQUEST post))
0
(if (eq (post "response") "Cancel")
0
- (
self redirectResponse:request toLocation:"/"))
0
+ (
Nunja redirectResponse:REQUEST toLocation:"/"))
0
(set username (post "username"))
0
(set password (post "password"))
0
(if (and (> (username length) 0) (eq username password))
0
(set sessionCookie (NunjaCookie cookieForUser:username))
0
- ($sessionCookies setObject:sessionCookie forKey:(sessionCookie value))
0
- (request setValue:(sessionCookie stringValue) forResponseHeader:"Set-Cookie")
0
- (self redirectResponse:request toLocation:"/"))
0
+ (sessionCookies setObject:sessionCookie forKey:(sessionCookie value))
0
+ (REQUEST setValue:(sessionCookie stringValue) forResponseHeader:"Set-Cookie")
0
+ (Nunja redirectResponse:REQUEST toLocation:"/"))
0
- (
set TITLE "Please try again")
0
+ (
RESPONSE setValue:"Please try again" forKey:"TITLE")
0
<p>Invalid Password. Your password is your username.</p>
0
<form action="/login" method="post">
0
@@ -91,13 +91,13 @@ HTML)
0
;; logout, also with a GET. In the real world, we would prefer a POST.
0
- (set sessionCookieName ((request cookies) "session"))
0
- (if sessionCookieName ($sessionCookies removeObjectForKey:sessionCookieName))
0
- (self redirectResponse:request toLocation:"/"))
0
+ (set sessionCookieName ((REQUEST cookies) "session"))
0
+ (if sessionCookieName (sessionCookies removeObjectForKey:sessionCookieName))
0
+ (Nunja redirectResponse:REQUEST toLocation:"/"))
0
- (
set TITLE "Add a friend")
0
+ (
RESPONSE setValue:"Add a friend" forKey:"TITLE")
0
<form action="/addfriend" method="post">
0
@@ -112,16 +112,16 @@ HTML)
0
;; add-a-friend POST handler.
0
- (set post (
request post))
0
+ (set post (
REQUEST post))
0
(if (eq (post "response") "Submit")
0
- ($friends << (dict name:(post "name") email:(post "email"))))
0
- (self redirectResponse:request toLocation:"/"))
0
+ (friends << (dict name:(post "name") email:(post "email"))))
0
+ (Nunja redirectResponse:REQUEST toLocation:"/"))
0
;; delete-a-friend with a GET. Strictly, this should be a post, but we use a get to show how it would be done.
0
(get (regex -"^/delete\?(.*)$")
0
- (set post ((@match groupAtIndex:1) urlQueryDictionary))
0
- (set $friends ($friends select:(do (friend) (!= (friend "name") (post "name")))))
0
- (self redirectResponse:request toLocation:"/"))
0
+ (set post ((MATCH groupAtIndex:1) urlQueryDictionary))
0
+ (set friends (friends select:(do (friend) (!= (friend "name") (post "name")))))
0
+ (Nunja redirectResponse:REQUEST toLocation:"/"))
0
<h1>About this site</h1>
0
@@ -129,5 +129,5 @@ HTML)
0
- (
request setValue:"application/icon" forResponseHeader:"Content-Type")
0
+ (
REQUEST setValue:"application/icon" forResponseHeader:"Content-Type")
0
(NSData dataWithContentsOfFile:"public/favicon.ico"))
Comments
No one has commented yet.