use of com.google.appengine.api.datastore.Query in project appengine-guestbook-java by googlearchive.
the class SignGuestbookServletTest method testDoPost.
@Test
public void testDoPost() throws IOException, EntityNotFoundException {
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);
String guestbookName = "TestGuestbook";
String testContent = "Test Content";
when(request.getParameter("guestbookName")).thenReturn(guestbookName);
when(request.getParameter("content")).thenReturn(testContent);
Date priorToRequest = new Date();
signGuestbookServlet.doPost(request, response);
Date afterRequest = new Date();
verify(response).sendRedirect("/guestbook.jsp?guestbookName=TestGuestbook");
User currentUser = UserServiceFactory.getUserService().getCurrentUser();
Entity greeting = DatastoreServiceFactory.getDatastoreService().prepare(new Query()).asSingleEntity();
assertEquals(guestbookName, greeting.getKey().getParent().getName());
assertEquals(testContent, greeting.getProperty("content"));
assertEquals(currentUser, greeting.getProperty("user"));
Date date = (Date) greeting.getProperty("date");
assertTrue("The date in the entity [" + date + "] is prior to the request being performed", priorToRequest.before(date) || priorToRequest.equals(date));
assertTrue("The date in the entity [" + date + "] is after to the request completed", afterRequest.after(date) || afterRequest.equals(date));
}
use of com.google.appengine.api.datastore.Query in project qi4j-sdk by Qi4j.
the class GaeEntityStoreMixin method entityStates.
@Override
public Input<Reader, IOException> entityStates() {
return new Input<Reader, IOException>() {
@Override
public <ReceiverThrowableType extends Throwable> void transferTo(Output<? super Reader, ReceiverThrowableType> output) throws IOException, ReceiverThrowableType {
Query query = new Query();
PreparedQuery preparedQuery = datastore.prepare(query);
final QueryResultIterable<Entity> iterable = preparedQuery.asQueryResultIterable();
output.receiveFrom(new Sender<Reader, IOException>() {
@Override
public <ReceiverThrowableType extends Throwable> void sendTo(Receiver<? super Reader, ReceiverThrowableType> receiver) throws ReceiverThrowableType, IOException {
for (Entity entity : iterable) {
Text serializedState = (Text) entity.getProperty("value");
receiver.receive(new StringReader(serializedState.getValue()));
}
}
});
}
};
}
use of com.google.appengine.api.datastore.Query in project getting-started-java by GoogleCloudPlatform.
the class DatastoreDao method listBooksByUser.
// [END listbooks]
// [START listbyuser]
@Override
public Result<Book> listBooksByUser(String userId, String startCursorString) {
// Only show 10 at a time
FetchOptions fetchOptions = FetchOptions.Builder.withLimit(10);
if (startCursorString != null && !startCursorString.equals("")) {
// Where we left off
fetchOptions.startCursor(Cursor.fromWebSafeString(startCursorString));
}
Query query = // We only care about Books
new Query(BOOK_KIND).setFilter(new Query.FilterPredicate(Book.CREATED_BY_ID, Query.FilterOperator.EQUAL, userId)).addSort(Book.TITLE, SortDirection.ASCENDING);
PreparedQuery preparedQuery = datastore.prepare(query);
QueryResultIterator<Entity> results = preparedQuery.asQueryResultIterator(fetchOptions);
// Retrieve and convert Entities
List<Book> resultBooks = entitiesToBooks(results);
// Where to start next time
Cursor cursor = results.getCursor();
if (cursor != null && resultBooks.size() == 10) {
// Are we paging? Save Cursor
// Cursors are WebSafe
String cursorString = cursor.toWebSafeString();
return new Result<>(resultBooks, cursorString);
} else {
return new Result<>(resultBooks);
}
}
use of com.google.appengine.api.datastore.Query in project getting-started-java by GoogleCloudPlatform.
the class DatastoreSessionFilter method init.
@Override
public void init(FilterConfig config) throws ServletException {
// initialize local copy of datastore session variables
datastore = DatastoreServiceFactory.getDatastoreService();
// Delete all sessions unmodified for over two days
DateTime dt = DateTime.now(DateTimeZone.UTC);
Query query = new Query(SESSION_KIND).setFilter(new FilterPredicate("lastModified", FilterOperator.LESS_THAN_OR_EQUAL, dt.minusDays(2).toString(DTF)));
Iterator<Entity> results = datastore.prepare(query).asIterator();
while (results.hasNext()) {
Entity stateEntity = results.next();
datastore.delete(stateEntity.getKey());
}
}
Aggregations