Rev 6993 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.serving.controllers;import in.shop2020.model.v1.order.TransactionService;import in.shop2020.model.v1.order.TransactionServiceException;import in.shop2020.thrift.clients.TransactionClient;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import java.nio.ByteBuffer;import java.nio.channels.Channels;import java.nio.channels.WritableByteChannel;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.util.ServletContextAware;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;@SuppressWarnings("serial")@InterceptorRefs({@InterceptorRef("myDefault"),@InterceptorRef("login")})/**** @author Rajveer**/public class InvoiceController extends BaseController implements ServletResponseAware,ServletRequestAware, ServletContextAware {private static Logger logger = LoggerFactory.getLogger(InvoiceController.class);private ServletContext context;private HttpServletRequest request;private HttpServletResponse response;private HttpSession session;private String id;private String orderId;private String errorMsg = "";public String show(){orderId = id;response.setContentType("application/pdf");response.setHeader("Content-disposition", "inline; filename=invoice-"+orderId+".pdf" );ByteBuffer buffer = null;try {if (orderId == null || orderId.isEmpty()) {logger.error("Order Id is null or empty");return "show";}TransactionClient tc = new TransactionClient("support_transaction_service_server_host", "transaction_service_server_port");TransactionService.Client orderClient = tc.getClient();buffer = orderClient.retrieveInvoice(Long.parseLong(orderId), userinfo.getUserId());if(!buffer.hasArray()) {logger.error("The invoice does not found");}} catch (Exception e) {System.out.println(e.getMessage());}ServletOutputStream sos;try {sos = response.getOutputStream();sos.write(buffer.array());sos.flush();} catch (Exception e) {System.out.println("Unable to stream the invoice file");}return "show";}@Overridepublic void setServletContext(ServletContext context) {this.context = context;}@Overridepublic void setServletResponse(HttpServletResponse response) {this.response = response;}@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;this.session = request.getSession();}public String getId(){return id;}public void setId(String id){this.id = id;}public String getServletContextPath(){return context.getContextPath();}public String getErrorMsg() {return errorMsg;}public void setErrorMsg(String errorMsg) {this.errorMsg = errorMsg;}}