Subversion Repositories SmartDukaan

Rev

Rev 1884 | Blame | Last modification | View Log | RSS feed

package in.shop2020.support.controllers;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import in.shop2020.support.services.InvoiceGenerationService;

import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.rest.DefaultHttpHeaders;
import org.apache.struts2.rest.HttpHeaders;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class InvoiceController implements ServletResponseAware{

        private static Logger logger = LoggerFactory.getLogger(InvoiceController.class);
        
        private int errorCode = 0;
        private String errorMessage;
        
        private String id;
        private long orderId;
        private HttpServletResponse response;
        
        public InvoiceController(){
                
        }
        
        public HttpHeaders show(){
                logger.info("Printing invoice for order id: " + getId());
                this.orderId = Long.parseLong(getId());
                
                InvoiceGenerationService invoiceGenerationService = new InvoiceGenerationService();
                ByteArrayOutputStream baos = invoiceGenerationService.generateInvoice(orderId);
                response.setContentType("application/pdf");
                response.setHeader("Content-disposition", "inline; filename=invoice-"+orderId+".pdf" );
                
                ServletOutputStream sos;
                try {
                        sos = response.getOutputStream();
                        baos.writeTo(sos);
                        sos.flush();
                } catch (IOException e) {
                        logger.error("Encountered error while sending invoice response: ", e);
                }
                
                return new DefaultHttpHeaders("lsuccess");
        }
        
        public int getErrorCode() {
                return errorCode;
        }

        public String getErrorMessage() {
                return errorMessage;
        }
        
        public String getId(){
                return id;
        }
        
        public void setId(String id){
                this.id = id;
        }

        @Override
        public void setServletResponse(HttpServletResponse response) {
                this.response  = response;
        }

}