package in.partake.controller.action.image;
import in.partake.base.PartakeException;
import in.partake.controller.action.AbstractPartakeAction;
import in.partake.model.IPartakeDAOs;
import in.partake.model.access.DBAccess;
import in.partake.model.dao.DAOException;
import in.partake.model.dao.PartakeConnection;
import in.partake.model.dto.UserImage;
import in.partake.resource.UserErrorCode;
import play.mvc.Result;
public class ImageAction extends AbstractPartakeAction {
static final String IMAGE_ID_PARAM_NAME = "imageId";
private final String imageId;
public ImageAction(String imageId) {
this.imageId = imageId;
}
public static Result get(String imageId) throws DAOException, PartakeException {
return new ImageAction(imageId).execute();
}
public Result doExecute() throws DAOException, PartakeException {
checkIdParameterIsValid(imageId, UserErrorCode.INVALID_NOTFOUND, UserErrorCode.INVALID_NOTFOUND);
UserImage image = new ImageTransaction(imageId).execute();
if (image == null)
return renderNotFound();
return render(image.getData(), image.getType(), "inline");
}
}
class ImageTransaction extends DBAccess<UserImage> {
private String imageId;
public ImageTransaction(String imageId) {
this.imageId = imageId;
}
@Override
protected UserImage doExecute(PartakeConnection con, IPartakeDAOs daos) throws DAOException, PartakeException {
return daos.getImageAccess().find(con, imageId);
}
}