Skip to content
Snippets Groups Projects
Commit ae11bae2 authored by Eirik Steira's avatar Eirik Steira
Browse files

Move methods for creating pdf to a location to ImageAlbumService

parent 88940cbf
No related branches found
No related tags found
1 merge request!88Refactor/pdf creation
...@@ -4,7 +4,7 @@ import NTNU.IDATT1002.App; ...@@ -4,7 +4,7 @@ import NTNU.IDATT1002.App;
import NTNU.IDATT1002.models.ImageAlbum; import NTNU.IDATT1002.models.ImageAlbum;
import NTNU.IDATT1002.service.ImageAlbumService; import NTNU.IDATT1002.service.ImageAlbumService;
import NTNU.IDATT1002.service.TagService; import NTNU.IDATT1002.service.TagService;
import NTNU.IDATT1002.utils.PdfDocument; import NTNU.IDATT1002.service.PdfDocument;
import javafx.application.HostServices; import javafx.application.HostServices;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.fxml.FXML; import javafx.fxml.FXML;
...@@ -18,8 +18,6 @@ import javafx.scene.layout.Pane; ...@@ -18,8 +18,6 @@ import javafx.scene.layout.Pane;
import javafx.scene.shape.StrokeType; import javafx.scene.shape.StrokeType;
import javafx.scene.text.Font; import javafx.scene.text.Font;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import java.io.File; import java.io.File;
...@@ -70,13 +68,11 @@ public class ViewAlbum implements Initializable { ...@@ -70,13 +68,11 @@ public class ViewAlbum implements Initializable {
private ImageAlbumService imageAlbumService; private ImageAlbumService imageAlbumService;
private Long currentAlbumId; private Long currentAlbumId;
private Logger logger;
public ViewAlbum() { public ViewAlbum() {
EntityManager entityManager = App.ex.getEntityManager(); EntityManager entityManager = App.ex.getEntityManager();
this.imageAlbumService = new ImageAlbumService(entityManager); this.imageAlbumService = new ImageAlbumService(entityManager);
currentAlbumId = App.ex.getChosenAlbumId(); currentAlbumId = App.ex.getChosenAlbumId();
logger = LoggerFactory.getLogger("ImageApplicationLogger");
} }
/** /**
...@@ -378,16 +374,7 @@ public class ViewAlbum implements Initializable { ...@@ -378,16 +374,7 @@ public class ViewAlbum implements Initializable {
*/ */
public void createPdf(ActionEvent actionEvent) { public void createPdf(ActionEvent actionEvent) {
Long currentAlbumId = App.ex.getChosenAlbumId(); Long currentAlbumId = App.ex.getChosenAlbumId();
ImageAlbum imageAlbum = imageAlbumService.getImageAlbumById(currentAlbumId) PdfDocument document = imageAlbumService.getPdfDocument(currentAlbumId);
.orElseThrow(IllegalArgumentException::new);
String destinationFile = String.format("%s/downloads/%s.pdf",
System.getProperty("user.home"),
imageAlbum.getTitle());
PdfDocument document = new PdfDocument(imageAlbum, destinationFile);
document.createPdfDocument();
logger.info("[x] Saved PDF document to " + destinationFile);
displayPdfLink(document.getPdfDocument()); displayPdfLink(document.getPdfDocument());
} }
......
...@@ -7,6 +7,8 @@ import NTNU.IDATT1002.models.Tag; ...@@ -7,6 +7,8 @@ import NTNU.IDATT1002.models.Tag;
import NTNU.IDATT1002.models.User; import NTNU.IDATT1002.models.User;
import NTNU.IDATT1002.repository.ImageAlbumRepository; import NTNU.IDATT1002.repository.ImageAlbumRepository;
import NTNU.IDATT1002.repository.TagRepository; import NTNU.IDATT1002.repository.TagRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -30,6 +32,7 @@ public class ImageAlbumService { ...@@ -30,6 +32,7 @@ public class ImageAlbumService {
private TagRepository tagRepository; private TagRepository tagRepository;
private Logger logger;
/** /**
* Inject entity manager instance to the repositories. * Inject entity manager instance to the repositories.
...@@ -37,6 +40,7 @@ public class ImageAlbumService { ...@@ -37,6 +40,7 @@ public class ImageAlbumService {
public ImageAlbumService(EntityManager entityManager) { public ImageAlbumService(EntityManager entityManager) {
this.imageAlbumRepository = new ImageAlbumRepository(entityManager); this.imageAlbumRepository = new ImageAlbumRepository(entityManager);
this.tagRepository = new TagRepository(entityManager); this.tagRepository = new TagRepository(entityManager);
logger = LoggerFactory.getLogger("ImageApplicationLogger");
} }
public Optional<ImageAlbum> getImageAlbumById(Long imageAlbumId) { public Optional<ImageAlbum> getImageAlbumById(Long imageAlbumId) {
...@@ -103,6 +107,21 @@ public class ImageAlbumService { ...@@ -103,6 +107,21 @@ public class ImageAlbumService {
} }
public PdfDocument getPdfDocument(Long currentAlbumId) {
ImageAlbum imageAlbum = getImageAlbumById(currentAlbumId)
.orElseThrow(IllegalArgumentException::new);
String destinationFile = String.format("%s/downloads/%s.pdf",
System.getProperty("user.home"),
imageAlbum.getTitle());
PdfDocument document = new PdfDocument(imageAlbum, destinationFile);
document.createPdfDocument();
logger.info("[x] Saved PDF document to " + destinationFile);
return document;
}
/** /**
* Retrieves all image albums created by the given user by username. * Retrieves all image albums created by the given user by username.
* *
......
package NTNU.IDATT1002.utils; package NTNU.IDATT1002.service;
import NTNU.IDATT1002.models.Image; import NTNU.IDATT1002.models.Image;
import NTNU.IDATT1002.models.ImageAlbum; import NTNU.IDATT1002.models.ImageAlbum;
......
...@@ -3,6 +3,7 @@ package NTNU.IDATT1002.utils; ...@@ -3,6 +3,7 @@ package NTNU.IDATT1002.utils;
import NTNU.IDATT1002.models.Image; import NTNU.IDATT1002.models.Image;
import NTNU.IDATT1002.models.ImageAlbum; import NTNU.IDATT1002.models.ImageAlbum;
import NTNU.IDATT1002.models.User; import NTNU.IDATT1002.models.User;
import NTNU.IDATT1002.service.PdfDocument;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment