package org.dicadeveloper.weplantaforest.mainSliderImage; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.dicadeveloper.weplantaforest.FileSystemInjector; import org.dicadeveloper.weplantaforest.common.image.ImageHelper; import org.dicadeveloper.weplantaforest.support.Uris; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import lombok.NonNull; import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor(onConstructor = @__(@Autowired) ) public class MainSliderImageController { protected final Log LOG = LogFactory.getLog(MainSliderImageController.class.getName()); @Autowired private @NonNull ImageHelper _imageHelper; @Autowired private @NonNull MainSliderImageRepository _mainSliderImageRepository; @RequestMapping(value = Uris.MAIN_SLIDER_IMAGES, method = RequestMethod.GET) public Iterable<MainSliderImage> getSliderImageEntities() { return _mainSliderImageRepository.findAll(); } @RequestMapping(value = Uris.MAIN_SLIDER_IMAGE + "{imageName:.+}/{width}/{height}", method = RequestMethod.GET, headers = "Accept=image/jpeg, image/jpg, image/png, image/gif") public ResponseEntity<?> getImage(HttpServletResponse response, @PathVariable String imageName, @PathVariable int width, @PathVariable int height) { String filePath = FileSystemInjector.getMainImageFolder() + "/" + imageName; try { _imageHelper.writeImageToOutputStream(response.getOutputStream(), filePath, width, height); return new ResponseEntity<>(HttpStatus.OK); } catch (IOException e) { LOG.error("Error occured while trying to get image " + imageName + " in folder: " + filePath, e); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } } }