From 6e2b00e7bed726d42cc640d95fed0570d80f964c Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Thu, 3 Sep 2020 16:23:55 +0200 Subject: [PATCH] no-jira: remove the REST API to change specific setting of tests --- .../restapi/AssessmentTestWebService.java | 112 ------------------ 1 file changed, 112 deletions(-) delete mode 100644 src/main/java/org/olat/ims/qti21/restapi/AssessmentTestWebService.java diff --git a/src/main/java/org/olat/ims/qti21/restapi/AssessmentTestWebService.java b/src/main/java/org/olat/ims/qti21/restapi/AssessmentTestWebService.java deleted file mode 100644 index cb1e5dfe247..00000000000 --- a/src/main/java/org/olat/ims/qti21/restapi/AssessmentTestWebService.java +++ /dev/null @@ -1,112 +0,0 @@ -/** - * <a href="http://www.openolat.org"> - * OpenOLAT - Online Learning and Training</a><br> - * <p> - * Licensed under the Apache License, Version 2.0 (the "License"); <br> - * you may not use this file except in compliance with the License.<br> - * You may obtain a copy of the License at the - * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> - * <p> - * Unless required by applicable law or agreed to in writing,<br> - * software distributed under the License is distributed on an "AS IS" BASIS, <br> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> - * See the License for the specific language governing permissions and <br> - * limitations under the License. - * <p> - * Initial code contributed and copyrighted by<br> - * frentix GmbH, http://www.frentix.com - * <p> - */ -package org.olat.ims.qti21.restapi; - -import static org.olat.restapi.security.RestSecurityHelper.getRoles; - -import java.io.File; -import java.net.URI; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; - -import org.apache.logging.log4j.Logger; -import org.olat.core.id.Roles; -import org.olat.core.logging.Tracing; -import org.olat.core.util.StringHelper; -import org.olat.fileresource.FileResourceManager; -import org.olat.ims.qti21.QTI21Service; -import org.olat.repository.RepositoryEntry; -import org.olat.repository.RepositoryManager; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import uk.ac.ed.ph.jqtiplus.node.test.AssessmentTest; -import uk.ac.ed.ph.jqtiplus.node.test.ItemSessionControl; -import uk.ac.ed.ph.jqtiplus.node.test.TestPart; -import uk.ac.ed.ph.jqtiplus.resolution.ResolvedAssessmentTest; - -/** - * - * Initial date: 2 sept. 2020<br> - * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com - * - */ -@Component -@Path("repo/tests") -public class AssessmentTestWebService { - - private static final Logger log = Tracing.createLoggerFor(AssessmentTestWebService.class); - - @Autowired - private QTI21Service qtiService; - @Autowired - private RepositoryManager repositoryManager; - - @PUT - @Path("{repoEntryKey}/parts/maxattempts") - public Response getRepositoryEntryResource(@PathParam("repoEntryKey")String repoEntryKey, @Context HttpServletRequest httpRequest) - throws WebApplicationException { - Roles roles = getRoles(httpRequest); - if(roles == null || !roles.isAdministrator()) { - throw new WebApplicationException(Status.FORBIDDEN); - } - RepositoryEntry re = lookupRepositoryEntry(repoEntryKey); - if(re == null) { - throw new WebApplicationException(Status.NOT_FOUND); - } - - FileResourceManager frm = FileResourceManager.getInstance(); - File unzippedDirRoot = frm.unzipFileResource(re.getOlatResource()); - ResolvedAssessmentTest resolvedObject = qtiService.loadAndResolveAssessmentTest(unzippedDirRoot, false, true); - AssessmentTest assessmentTest = resolvedObject.getRootNodeLookup().extractIfSuccessful(); - - List<TestPart> parts = assessmentTest.getChildAbstractParts(); - for(TestPart part:parts) { - ItemSessionControl itemSessionControl = part.getItemSessionControl(); - itemSessionControl.setMaxAttempts(Integer.valueOf(0)); - } - - URI testURI = resolvedObject.getTestLookup().getSystemId(); - File testFile = new File(testURI); - qtiService.updateAssesmentObject(testFile, resolvedObject); - return Response.ok().build(); - } - - private RepositoryEntry lookupRepositoryEntry(String key) { - RepositoryEntry re = null; - if (StringHelper.isLong(key)) {// looks like a primary key - try { - re = repositoryManager.lookupRepositoryEntry(Long.valueOf(key)); - } catch (NumberFormatException e) { - log.warn("", e); - } - } - return re; - } - -} -- GitLab