All Downloads are FREE. Search and download functionalities are using the official Maven repository.

me.desair.tus.server.termination.TerminationDeleteRequestHandler Maven / Gradle / Ivy

package me.desair.tus.server.termination;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import me.desair.tus.server.HttpMethod;
import me.desair.tus.server.exception.TusException;
import me.desair.tus.server.upload.UploadInfo;
import me.desair.tus.server.upload.UploadStorageService;
import me.desair.tus.server.util.AbstractRequestHandler;
import me.desair.tus.server.util.TusServletRequest;
import me.desair.tus.server.util.TusServletResponse;

/**
 * When receiving a DELETE request for an existing upload the Server SHOULD free associated resources
 * and MUST respond with the 204 No Content status confirming that the upload was terminated. For all future requests
 * to this URL the Server SHOULD respond with the 404 Not Found or 410 Gone status.
 */
public class TerminationDeleteRequestHandler extends AbstractRequestHandler {

    @Override
    public boolean supports(HttpMethod method) {
        return HttpMethod.DELETE.equals(method);
    }

    @Override
    public void process(HttpMethod method, TusServletRequest servletRequest,
                        TusServletResponse servletResponse, UploadStorageService uploadStorageService,
                        String ownerKey) throws IOException, TusException {

        UploadInfo uploadInfo = uploadStorageService.getUploadInfo(servletRequest.getRequestURI(), ownerKey);

        if (uploadInfo != null) {
            uploadStorageService.terminateUpload(uploadInfo);
        }

        servletResponse.setStatus(HttpServletResponse.SC_NO_CONTENT);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy