Skip to content

Instantly share code, notes, and snippets.

@koduki
Created May 28, 2009 16:53
Show Gist options
  • Save koduki/119434 to your computer and use it in GitHub Desktop.
Save koduki/119434 to your computer and use it in GitHub Desktop.
package cn.orz.pascal.gae
import javax.servlet.http.{HttpServletResponse => Response, HttpServletRequest => Request}
import com.google.appengine.api.users.{User, UserService, UserServiceFactory}
import com.google.appengine.api.datastore._
import cn.orz.pascal.gae.persist.DataStore
import pascal.gae.framework.AbstractRoute
object Route extends AbstractRoute{
get("/index.html"){ (req:Request, res:Response) =>
val service = UserServiceFactory.getUserService()
val user = service.getCurrentUser()
if (user == null) res.sendRedirect(service.createLoginURL(req.getRequestURI()));
<html>
<head>
<title>GuestBook</title>
</head>
<body>
<h1>GuestBook</h1>
<p>
<form method="POST">
Name : {user.getNickname } <input type="text" name="content" />
<input type="submit"/>
</form>
</p>
<p>
{for( x <- DataStore from('Greeting) asIterator) yield {
<p>{x.getProperty("name")} : { x.getProperty("content")} # {x.getProperty("date")}</p>
}}
</p>
</body>
</html>
}
post("/index.html"){(req:Request, res:Response) =>
val content = req.getParameter("content")
val name = req.getParameter("name")
// Data Store.
val entity = new Entity("Greeting")
entity.setProperty("name", name)
entity.setProperty("content", content)
entity.setProperty("date", java.util.Calendar.getInstance.getTime())
val datastore = DatastoreServiceFactory.getDatastoreService();
datastore.put(entity)
res.sendRedirect( "/index.html" )
<success />
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment