@@ -0,0 +1,3404 @@
+// 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;%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.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 java.util.Date;%0Aimport javax.servlet.ServletException;%0A%0A/** Servlet that stores questions*/%0A@WebServlet(%22/question%22)%0Apublic class QuestionServlet extends HttpServlet%7B%0A  @Override%0A  public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException %7B%0A    /* Servlet Receives information from the client about the question they want to save */%0A    String question = getParameter(request, %22question%22, %22%22);%0A    String marks = getParameter(request, %22marks%22, %22%22);%0A%0A    HttpSession session = request.getSession();%0A    Long testID = (Long) session.getAttribute(%22testid%22);%0A%0A    // Create a Question Entity with the parameters provided%0A    Entity questionEntity = new Entity((String.valueOf(testID)));%0A    questionEntity.setProperty(%22question%22,question);%0A    questionEntity.setProperty(%22marks%22,marks);%0A    questionEntity.setProperty(%22questionID%22,questionEntity.getKey().getId());%0A%0A    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();%0A    datastore.put(questionEntity);%0A%0A    response.sendRedirect(%22/createTest.html%22);%0A    response.setContentType(%22application/json%22);%0A    response.getWriter().println(convertToJsonUsingGson(questionEntity));%0A  %7D%0A%0A  private String getParameter(HttpServletRequest request, String name, String defaultValue)%7B%0A    /* Gets Parameters from the Users Page%0A     *%0A     * Return: Returns the requested parameter or the default value if the parameter%0A     *  wasn't specified by the User.   %0A     */%0A    String value = request.getParameter(name);%0A    if(value == null)%7B%0A        return defaultValue;%0A    %7D%0A    return value;%0A  %7D%0A  private String convertToJsonUsingGson(Entity question) %7B%0A    /* Converts the question to a json string using Gson%0A    *%0A    *Arguments: question Entity %0A    *%0A    *Returns: json string of the question%0A    *%0A    */%0A    Gson gson = new Gson();%0A    String json = gson.toJson(question);%0A    return json;%0A  %7D%0A%7D

Add Question Servlet to save questions