Skip to content

Instantly share code, notes, and snippets.

@billy-bacon
Created December 5, 2013 00:11
Show Gist options
  • Save billy-bacon/7797975 to your computer and use it in GitHub Desktop.
Save billy-bacon/7797975 to your computer and use it in GitHub Desktop.
package com.alexandria.licenseproxy.stripes.ebook;
import com.alexandria.licenseproxy.helper.CircHelper;
import com.alexandria.licenseproxy.helper.EBookHelper;
import com.google.inject.Inject;
import net.sourceforge.stripes.action.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
@UrlBinding("/ebook/file/{mediaKey}/{filename}")
public class EBookEpubFileAction extends EBookBaseAction {
private static final Logger logger = LoggerFactory.getLogger(EBookEpubFileAction.class);
private String filename;
@Inject
public EBookEpubFileAction(final CircHelper circHelper, final EBookHelper eBookHelper) {
this.circHelper = circHelper;
this.eBookHelper = eBookHelper;
}
@DefaultHandler
public Resolution provideEpubFile() {
// Determine if the patron requesting the epub file has authorization to do so (has the title borrowed).
final Resolution errorResolution = authorizeRequest(patronId, mediaKey);
if (errorResolution != null) {
return errorResolution;
}
byte[] data = eBookHelper.getEpubFileFromS3(mediaKey, filename);
if (data == null) return new ErrorResolution(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return new StreamingResolution(getMimeType(filename), new ByteArrayInputStream(data));
}
private String getMimeType(String filename) {
return null; //To change body of created methods use File | Settings | File Templates.
}
public void setFilename(String filename) {
this.filename = filename;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment