package rest.resource;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

import javax.imageio.ImageIO;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;


@Path("/project")
public class ProjectResource {

	BufferedImage bi;
	
	@POST
	@Consumes("image/jpg")
	public Response post(InputStream source) {
		System.out.println("BitMap: ");
		String id = UUID.randomUUID().toString();
		boolean isProcessed = false;
		String message = null;
		
			 System.out.println("----server-----");

			
			
			try {
				bi = ImageIO.read(source);
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			File file = new File("C:\\Apps\\" + id + ".jpg");
			System.out.println("Image: "+bi.toString().length());
			// storing the image to file system.
			if (file.isDirectory()) {
				try {
					ImageIO.write(bi, "jpg", file);
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			} else {
				file.mkdirs();
				try {
					ImageIO.write(bi, "jpg", file);
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			System.out.println("Image Size: "+file.length());

			isProcessed = true;

		
		if (isProcessed) {
			return Response.status(Response.Status.ACCEPTED).entity(
					"Attachements processed successfully.").type(
					MediaType.TEXT_PLAIN).build();
		}

		return Response.status(Response.Status.BAD_REQUEST).entity(
				"Failed to process attachments. Reason : " + message).type(
				MediaType.TEXT_PLAIN).build();
		/*return Response.status(Response.Status.BAD_REQUEST).entity(
				"Failed to process attachments. Reason : ").type(
				MediaType.TEXT_PLAIN).build();*/
	}
}