@@ -0,0 +1,3601 @@
+// Copyright 2019 Google LLC%0A//%0A// Licensed under the Apache License, Version 2.0 (the %22License%22);%0A// you may not use this file except in compliance with the License.%0A// You may obtain a copy of the License at%0A//%0A//     https://www.apache.org/licenses/LICENSE-2.0%0A//%0A// Unless required by applicable law or agreed to in writing, software%0A// distributed under the License is distributed on an %22AS IS%22 BASIS,%0A// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A// See the License for the specific language governing permissions and%0A// limitations under the License.%0A%0Apackage com.google.sps.servlets;%0A%0Aimport com.google.sps.data.TestClass;%0Aimport com.google.sps.data.QuestionClass;%0Aimport java.io.IOException;%0Aimport com.google.appengine.api.datastore.DatastoreService;%0Aimport com.google.appengine.api.datastore.DatastoreServiceFactory;%0Aimport com.google.appengine.api.datastore.Entity;%0Aimport com.google.appengine.api.datastore.DatastoreFailureException;%0Aimport com.google.appengine.api.datastore.PreparedQuery;%0Aimport com.google.appengine.api.datastore.Query;%0Aimport com.google.appengine.api.datastore.Query.SortDirection;%0Aimport com.google.appengine.api.datastore.Key;%0Aimport com.google.appengine.api.datastore.KeyFactory;%0Aimport com.google.appengine.api.datastore.Query.Filter;%0Aimport com.google.appengine.api.datastore.FetchOptions;%0Aimport com.google.appengine.api.datastore.Query.FilterPredicate;%0Aimport com.google.appengine.api.datastore.Query.FilterOperator;%0Aimport com.google.gson.Gson;%0Aimport java.util.List;%0Aimport javax.servlet.annotation.WebServlet;%0Aimport javax.servlet.http.HttpServlet;%0Aimport javax.servlet.http.HttpServletRequest;%0Aimport javax.servlet.http.HttpServletResponse;%0Aimport javax.servlet.http.HttpSession;%0Aimport java.util.*;%0Aimport javax.servlet.ServletException;%0Aimport com.google.appengine.api.users.UserService;%0Aimport com.google.appengine.api.users.UserServiceFactory;%0A%0A/** Servlet that returns the tests owned by the user*/%0A@WebServlet(%22/returnTestsUserOwns%22)%0Apublic class TestsUserOwnsServlet extends HttpServlet%7B%0A  @Override%0A  public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException %7B%0A    /*Returns the tests that the user has created */%0A    UserService userService = UserServiceFactory.getUserService();%0A    String ownerID = userService.getCurrentUser().getEmail(); %0A%0A    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();%0A    Query query = new Query(%22Test%22).setFilter(new FilterPredicate(%22ownerID%22,%0A      FilterOperator.EQUAL, ownerID));%0A    PreparedQuery results = datastore.prepare(query);%0A%0A    List%3CTestClass%3E testList = new ArrayList%3C%3E();%0A    for (Entity entity : results.asIterable()) %7B%0A      long testId = entity.getKey().getId();%0A      String testName = (String) entity.getProperty(%22testName%22);%0A      String testDuration = (String) entity.getProperty(%22testDuration%22);%0A      String ownerId = (String) entity.getProperty(%22ownerID%22);%0A      TestClass test = new TestClass(testName,testId,Double.valueOf(testDuration),ownerID);%0A      testList.add(test);%0A    %7D%0A%0A    response.setContentType(%22application/json;%22);%0A    response.sendRedirect(%22/createTest.html%22);%0A    response.getWriter().println(convertToJsonUsingGson(testList));%0A  %7D%0A  private String convertToJsonUsingGson(List%3CTestClass%3E questions) %7B%0A    /* Converts the test List to a json string using Gson%0A    *%0A    *Arguments: Question testList that is populated with tests%0A    *%0A    *Returns: json string of the tests%0A    *%0A    */%0A    Gson gson = new Gson();%0A    String json = gson.toJson(questions);%0A    return json;%0A  %7D%0A%7D

Add Servlet that returns all tests that a user has created