package com.kodcu.controller; import com.kodcu.service.DirectoryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Objects; import java.util.Optional; /** * Created by usta on 04.09.2016. */ @Controller public class CommonResource { private final FileService fileService; private final DirectoryService directoryService; @Autowired public CommonResource(FileService fileService, DirectoryService directoryService) { this.fileService = fileService; this.directoryService = directoryService; } public void processPayload(Payload payload) { String p = payload.param("p"); String finalUri = payload.getFinalURI(); if (Objects.nonNull(p)) { Path inPublic = directoryService.findPathInPublic(p); if (Objects.nonNull(inPublic)) { fileService.processFile(payload, inPublic); return; } } Optional<Path> resolvedUri = payload.resolveUri(finalUri); if (resolvedUri.isPresent()) { Path path = directoryService.findPathInWorkdirOrLookup(resolvedUri.get()); if (Objects.nonNull(path)) { fileService.processFile(payload, path); return; } } Path path = directoryService.findPathInCurrentOrWorkDir(finalUri); if (Objects.nonNull(path)) { fileService.processFile(payload, path); return; } Path inPublic = directoryService.findPathInPublic(finalUri); fileService.processFile(payload, inPublic); } }