Search in sources :

Example 71 with Query

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));
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) Entity(com.google.appengine.api.datastore.Entity) User(com.google.appengine.api.users.User) Query(com.google.appengine.api.datastore.Query) HttpServletResponse(javax.servlet.http.HttpServletResponse) Date(java.util.Date) Test(org.junit.Test)

Example 72 with Query

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()));
                    }
                }
            });
        }
    };
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Query(com.google.appengine.api.datastore.Query) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Reader(java.io.Reader) StringReader(java.io.StringReader) Text(com.google.appengine.api.datastore.Text) IOException(java.io.IOException) Input(org.qi4j.io.Input) Output(org.qi4j.io.Output) StringReader(java.io.StringReader)

Example 73 with Query

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);
    }
}
Also used : FetchOptions(com.google.appengine.api.datastore.FetchOptions) Entity(com.google.appengine.api.datastore.Entity) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Query(com.google.appengine.api.datastore.Query) Book(com.example.getstarted.objects.Book) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Cursor(com.google.appengine.api.datastore.Cursor) Result(com.example.getstarted.objects.Result)

Example 74 with Query

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());
    }
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Query(com.google.appengine.api.datastore.Query) FilterPredicate(com.google.appengine.api.datastore.Query.FilterPredicate) DateTime(org.joda.time.DateTime)

Aggregations

Query (com.google.appengine.api.datastore.Query)74 Entity (com.google.appengine.api.datastore.Entity)59 PreparedQuery (com.google.appengine.api.datastore.PreparedQuery)47 Test (org.junit.Test)38 FilterPredicate (com.google.appengine.api.datastore.Query.FilterPredicate)31 Filter (com.google.appengine.api.datastore.Query.Filter)20 Key (com.google.appengine.api.datastore.Key)16 CompositeFilter (com.google.appengine.api.datastore.Query.CompositeFilter)16 DatastoreService (com.google.appengine.api.datastore.DatastoreService)13 ArrayList (java.util.ArrayList)13 PersistentDataStoreException (codeu.model.store.persistence.PersistentDataStoreException)6 FetchOptions (com.google.appengine.api.datastore.FetchOptions)6 PrintWriter (java.io.PrintWriter)6 Instant (java.time.Instant)6 UUID (java.util.UUID)6 Conversation (codeu.model.data.Conversation)2 Message (codeu.model.data.Message)2 User (codeu.model.data.User)2 Book (com.example.getstarted.objects.Book)2 Result (com.example.getstarted.objects.Result)2