1 package fr.tiogars.inception.domains.domaintemplate.services;
2
3 import java.io.IOException;
4 import java.util.List;
5 import java.util.Optional;
6
7 import org.springframework.stereotype.Service;
8 import org.springframework.transaction.annotation.Transactional;
9
10 import fr.tiogars.inception.domains.domaintemplate.models.DomainTemplate;
11
12
13 @Service
14 public class DomainTemplatePrintService {
15
16 private final DomainTemplateFindByIdService findByIdService;
17 private final DomainTemplatePdfRenderer renderer;
18
19 public DomainTemplatePrintService(DomainTemplateFindByIdService findByIdService, DomainTemplatePdfRenderer renderer) {
20 this.findByIdService = findByIdService;
21 this.renderer = renderer;
22 }
23
24
25
26
27
28
29
30
31 @Transactional(readOnly = true)
32 public Optional<byte[]> print(Long id) throws IOException {
33 Optional<DomainTemplate> template = findByIdService.findById(id);
34 if (template.isEmpty()) {
35 return Optional.empty();
36 }
37 return Optional.of(renderer.render("DomainTemplate", List.of(template.get())));
38 }
39 }