package org.dicadeveloper.weplantaforest.dev.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.dicadeveloper.weplantaforest.cart.Cart; import org.dicadeveloper.weplantaforest.cart.CartRepository; import org.dicadeveloper.weplantaforest.certificate.Certificate; import org.dicadeveloper.weplantaforest.certificate.CertificateRepository; import org.dicadeveloper.weplantaforest.certificate.PdfCertificateView; import org.dicadeveloper.weplantaforest.certificate.PdfCertificateView2; import org.dicadeveloper.weplantaforest.common.errorHandling.IpatException; import org.dicadeveloper.weplantaforest.gift.GiftRepository; import org.dicadeveloper.weplantaforest.gift.GiftService; import org.dicadeveloper.weplantaforest.receipt.PdfReceiptView; import org.dicadeveloper.weplantaforest.receipt.Receipt; import org.dicadeveloper.weplantaforest.receipt.ReceiptRepository; import org.dicadeveloper.weplantaforest.user.User; import org.dicadeveloper.weplantaforest.user.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import lombok.NonNull; import lombok.RequiredArgsConstructor; @Profile("dev") @RestController @RequiredArgsConstructor(onConstructor = @__(@Autowired) ) public class DummyPdfController { private @NonNull GiftRepository _giftRepository; private @NonNull GiftService _giftService; private @NonNull UserRepository _userRepository; private @NonNull CartRepository _cartRepository; private @NonNull CertificateRepository _certificateRepository; private @NonNull ReceiptRepository _receiptRepository; private final static String RELATIVE_STATIC_IMAGES_PATH_GIFT = "src/main/resources/static/images/pdf"; private final static String RELATIVE_STATIC_IMAGES_PATH_CERTIFICATE = "src/main/resources/static/images/pdf"; @RequestMapping(value = "/gift/pdf/test", method = RequestMethod.GET, headers = "Accept=application/pdf") public ResponseEntity<?> createGiftPdf(HttpServletResponse response) throws IpatException { _giftService.createGiftPdf(1L, response); return new ResponseEntity<>(HttpStatus.OK); } @RequestMapping(value = "/certificate/pdf/test", method = RequestMethod.GET, headers = "Accept=application/pdf") public ResponseEntity<?> createCertificatePdf(HttpServletResponse response) { User user = _userRepository.findOne(1L); Long[] cartIds = { 1L }; Certificate certificate = new Certificate(); certificate.setCreator(user); certificate.setText("Dies ist mein Beitrag zur Rettung der Umwelt. Ich freue mich wie ein Schnitzel und kann gar nicht glauben, wie toll das ist."); List<Cart> carts = _cartRepository.findCartsByIdIn(cartIds); // get tree count int treeCount = 0; for (Cart cart : carts) { certificate.addCart(cart); treeCount = +cart.getTreeCount(); } // generate certificate number int certificateCountByUser = _certificateRepository.countCertificatesByUser(1L); String certificateNumber = certificate.generateAndSetNumber(certificateCountByUser); _certificateRepository.save(certificate); PdfCertificateView pdf = new PdfCertificateView(); try { pdf.writePdfDataToOutputStream(response.getOutputStream(), treeCount, certificate.getText(), user.getName(), certificateNumber, RELATIVE_STATIC_IMAGES_PATH_CERTIFICATE); } catch (Exception e) { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } return new ResponseEntity<>(HttpStatus.OK); } @RequestMapping(value = "/certificate/pdf/test2", method = RequestMethod.GET, headers = "Accept=application/pdf") public ResponseEntity<?> createCertificatePdf2(HttpServletResponse response) { User user = _userRepository.findOne(1L); Long[] cartIds = { 1L }; Certificate certificate = new Certificate(); certificate.setCreator(user); certificate.setText("Dies ist mein Beitrag zur Rettung der Umwelt. Ich freue mich wie ein Schnitzel und kann gar nicht glauben, wie toll das ist."); List<Cart> carts = _cartRepository.findCartsByIdIn(cartIds); // get tree count int treeCount = 0; for (Cart cart : carts) { certificate.addCart(cart); treeCount = +cart.getTreeCount(); } // generate certificate number int certificateCountByUser = _certificateRepository.countCertificatesByUser(1L); String certificateNumber = certificate.generateAndSetNumber(certificateCountByUser); _certificateRepository.save(certificate); PdfCertificateView2 pdf = new PdfCertificateView2(); try { pdf.writePdfDataToOutputStream(response.getOutputStream(), treeCount, certificate.getText(), user.getName(), certificateNumber, RELATIVE_STATIC_IMAGES_PATH_CERTIFICATE); } catch (Exception e) { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } return new ResponseEntity<>(HttpStatus.OK); } @RequestMapping(value = "/receipt/pdf/test", method = RequestMethod.GET, headers = "Accept=application/pdf") public ResponseEntity<?> createReceiptPdf(HttpServletResponse response) { Receipt receipt = _receiptRepository.findOne(1L); PdfReceiptView pdf = new PdfReceiptView(); try { pdf.writePdfDataToOutputStream(response.getOutputStream(), RELATIVE_STATIC_IMAGES_PATH_GIFT, receipt); } catch (Exception e) { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } return new ResponseEntity<>(HttpStatus.OK); } }