package org.peerbox.server.servlets; import java.nio.file.Path; import org.peerbox.delete.IFileDeleteHandler; import org.peerbox.server.servlets.messages.DeleteMessage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.gson.Gson; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; @Singleton public class FileDeleteServlet extends BaseServlet<DeleteMessage> { private static final Logger logger = LoggerFactory.getLogger(FileDeleteServlet.class); private static final long serialVersionUID = 1L; private final Provider<IFileDeleteHandler> fileDeleteHandlerProvider; @Inject public FileDeleteServlet(Provider<IFileDeleteHandler> fileRecoveryDeleteProvider) { super(); this.fileDeleteHandlerProvider = fileRecoveryDeleteProvider; } @Override protected void handleRequest(DeleteMessage msg) throws Exception { if (msg.getPaths() == null) { throw new IllegalArgumentException("Paths is null. Cannot interpret request."); } IFileDeleteHandler handler = fileDeleteHandlerProvider.get(); for (Path path : msg.getPaths()) { logger.info("Got request to delete file: '{}'", path); handler.deleteFile(path); } } @Override protected DeleteMessage deserializeMessage(final String jsonContent) { DeleteMessage msg = null; Gson gson = createGsonInstance(); msg = gson.fromJson(jsonContent, DeleteMessage.class); return msg; } }