Package com.appspot.finajjarane.framework.media.controllers

Source Code of com.appspot.finajjarane.framework.media.controllers.Media

package com.appspot.finajjarane.framework.media.controllers;

import java.io.IOException;
import java.util.logging.Logger;

import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.appspot.finajjarane.framework.generic.ApplicationConstants;
import com.appspot.finajjarane.framework.generic.GenericDaoImpl;
import com.appspot.finajjarane.framework.service.IPicasaWeb;
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;
import com.google.appengine.api.images.ImagesServiceFactory;

@Controller
@RequestMapping("/media")
public class Media {

  // Setup loggin object
  public static final Logger log = Logger.getLogger(GenericDaoImpl.class.getName());

  @Autowired
  IPicasaWeb iPicasaWeb;

  @RequestMapping("/image/{blobKeyString}")
  public void getArticleImage(
                HttpServletResponse response,
                @PathVariable("blobKeyString") String blobKeyString
                ){

    try {
      BlobKey blobKey = new BlobKey(blobKeyString);
      BlobstoreServiceFactory.getBlobstoreService().serve(blobKey, response);
    } catch (IOException e) {
      e.printStackTrace();
    }

  }


  // This service resize image and crop it, it's a high performance
  @RequestMapping("/image/thumb/{blobKeyString}/{width}/{crop}")
  public void getArticleImageThumb(
                    HttpServletResponse response,
                    @PathVariable("blobKeyString") final String blobKeyString,
                    @PathVariable("width") final int width,
                    @PathVariable("crop") final int cropParam
                  ) throws IOException{

    boolean crop = false;
    if(cropParam==1){
      crop=true;
    }

    try {
      String urlResizedImage;
      BlobKey blobKey = new BlobKey(blobKeyString);

      urlResizedImage = ImagesServiceFactory.getImagesService().getServingUrl(blobKey, width, crop);
      response.sendRedirect(urlResizedImage);
    } catch (Exception e) {
      response.sendRedirect(iPicasaWeb.getImageUrl(ApplicationConstants.NO_IMAGE_TITLE));
      log.severe(e.getMessage());
    }
  }

  @RequestMapping("/image/picasa/{imageTitle}")
  public void getImageFromPicasaWeb(
                    @PathVariable("imageTitle") final String imageTitle,
                    HttpServletResponse response
                    ){
    try {
      response.sendRedirect(iPicasaWeb.getImageUrl(imageTitle));
    } catch (IOException e) {
      log.severe("Error in /media/image/picasa/" + imageTitle + ": \n" + e.getMessage());
    }

  }

}
TOP

Related Classes of com.appspot.finajjarane.framework.media.controllers.Media

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.