package eu.dnetlib.thumbnail.inspector;

import java.io.InputStream;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import eu.dnetlib.enabling.inspector.AbstractInspectorController;
import eu.dnetlib.thumbnail.ThumbnailServiceCore;

@Controller
public class ThumbnailController extends AbstractInspectorController {
	@Resource
	private ThumbnailServiceCore core;

	@RequestMapping(value = "/inspector/thumbnail.do")
	public void thumbnail() throws Exception {
	}

	@RequestMapping(value = "/inspector/thumbnail-gen.do")
	public void thumbnail_gen(
			final ModelMap map,
			final HttpServletResponse response,
			@RequestParam(value = "url", required = false) String url,
			@RequestParam(value = "file", required = false) MultipartFile file) throws Exception {

		InputStream stream = null;

		if (url != null && url.startsWith("http://")) {
			stream = core.generateThumbnail(url);
		} else if (file != null) {
			stream = core.generateThumbnail(file.getInputStream());
		}

		if (stream != null) {
			response.setContentType("image/png");
			IOUtils.copy(stream, response.getOutputStream());
		}
	}
}
