Skip to content

Instantly share code, notes, and snippets.

@efleming969
Created April 24, 2009 05:18
Show Gist options
  • Save efleming969/100962 to your computer and use it in GitHub Desktop.
Save efleming969/100962 to your computer and use it in GitHub Desktop.
package org.rockcoder.gae;
import java.io._
import javax.servlet.http._
import javax.servlet._
import com.google.appengine.api.datastore._
import com.google.appengine.tools.development.ApiProxyLocalImpl;
import com.google.apphosting.api.ApiProxy;
class TestEnvironment extends ApiProxy.Environment {
def getAppId() = "Unit Tests"
def getVersionId() = "1.0"
def setDefaultNamespace(s: String) = {}
def getRequestNamespace() = null
def getDefaultNamespace() = null
def getAuthDomain() = null
def isLoggedIn() = false
def getEmail() = null
def isAdmin() = false
}
import scala.collection.jcl._
import com.google.appengine.api.datastore.FetchOptions.Builder._
class HelloWorld extends HttpServlet {
override def init(config: ServletConfig) {
ApiProxy.setEnvironmentForCurrentThread(new TestEnvironment());
ApiProxy.setDelegate(new ApiProxyLocalImpl(new File(".")){});
}
override def doGet(req: HttpServletRequest , resp: HttpServletResponse ) {
resp.setContentType("text/html");
var form = <form method="post">
<input type="text" name="name" />
<input type="submit" value="create entity" />
</form>
resp.getWriter().println(form.toString);
//val key = KeyFactory.stringToKey("agpVbml0IFRlc3Rzcg0LEgdjb250YWN0GAIM")
// Get a handle on the datastore itself
val datastore = DatastoreServiceFactory.getDatastoreService();
// Lookup data by known key name
//val entity = datastore.get(key);
val pquery = datastore.prepare(new Query("contact"))
val list = new BufferWrapper[Entity] {
override def underlying = pquery.asList(withLimit(5))
}
var ul = <ul>
{ list.flatMap(li => <li>{ KeyFactory.keyToString(li.getKey) +": "+ li.getProperty("name") }</li>) }
</ul>
resp.getWriter().println("<div>"+ul.toString+"</div>");
}
override def doPost(req: HttpServletRequest , resp: HttpServletResponse ) {
val name = req.getParameter("name")
val datastore = DatastoreServiceFactory.getDatastoreService();
val entity = new Entity("contact")
entity.setProperty("name", name)
val key = datastore.put(entity)
resp.sendRedirect("/HelloWorld.html")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment