Add public trust center documents

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2025-10-02 16:02:57 +02:00
parent ba91e46cf7
commit 8504830c4b
39 changed files with 890 additions and 599 deletions

View File

@@ -53,6 +53,31 @@ func (s AuditService) Get(
return audit, nil
}
func (s AuditService) GetByReportID(
ctx context.Context,
reportID gid.GID,
) (*coredata.Audit, error) {
audit := &coredata.Audit{}
err := s.svc.pg.WithConn(
ctx,
func(conn pg.Conn) error {
err := audit.LoadByReportID(ctx, conn, s.svc.scope, reportID)
if err != nil {
return fmt.Errorf("cannot load audit: %w", err)
}
return nil
},
)
if err != nil {
return nil, err
}
return audit, nil
}
func (s AuditService) ListForOrganizationId(
ctx context.Context,
organizationID gid.GID,

View File

@@ -88,6 +88,55 @@ func (s *DocumentService) ExportPDF(
ctx context.Context,
documentID gid.GID,
email string,
) ([]byte, error) {
pdfData, err := s.exportPDFData(ctx, documentID)
if err != nil {
return nil, fmt.Errorf("cannot export document PDF: %w", err)
}
watermarkedPDF, err := watermarkpdf.AddConfidentialWithTimestamp(pdfData, email)
if err != nil {
return nil, fmt.Errorf("cannot add watermark to PDF: %w", err)
}
return watermarkedPDF, nil
}
func (s *DocumentService) ExportPDFWithoutWatermark(
ctx context.Context,
documentID gid.GID,
) ([]byte, error) {
return s.exportPDFData(ctx, documentID)
}
func (s DocumentService) Get(
ctx context.Context,
documentID gid.GID,
) (*coredata.Document, error) {
document := &coredata.Document{}
err := s.svc.pg.WithConn(
ctx,
func(conn pg.Conn) error {
err := document.LoadByID(ctx, conn, s.svc.scope, documentID)
if err != nil {
return fmt.Errorf("cannot load document: %w", err)
}
return nil
},
)
if err != nil {
return nil, err
}
return document, nil
}
func (s *DocumentService) exportPDFData(
ctx context.Context,
documentID gid.GID,
) ([]byte, error) {
document := &coredata.Document{}
version := &coredata.DocumentVersion{}
@@ -100,7 +149,7 @@ func (s *DocumentService) ExportPDF(
return fmt.Errorf("cannot load document: %w", err)
}
if !document.ShowOnTrustCenter {
if document.TrustCenterVisibility == coredata.TrustCenterVisibilityNone {
return fmt.Errorf("document not visible on trust center")
}
@@ -163,35 +212,5 @@ func (s *DocumentService) ExportPDF(
return nil, fmt.Errorf("cannot read PDF data: %w", err)
}
watermarkedPDF, err := watermarkpdf.AddConfidentialWithTimestamp(pdfData, email)
if err != nil {
return nil, fmt.Errorf("cannot add watermark to PDF: %w", err)
}
return watermarkedPDF, nil
}
func (s DocumentService) Get(
ctx context.Context,
documentID gid.GID,
) (*coredata.Document, error) {
document := &coredata.Document{}
err := s.svc.pg.WithConn(
ctx,
func(conn pg.Conn) error {
err := document.LoadByID(ctx, conn, s.svc.scope, documentID)
if err != nil {
return fmt.Errorf("cannot load document: %w", err)
}
return nil
},
)
if err != nil {
return nil, err
}
return document, nil
return pdfData, nil
}

View File

@@ -89,6 +89,30 @@ func (s ReportService) ExportPDF(
ctx context.Context,
reportID gid.GID,
email string,
) ([]byte, error) {
pdfData, err := s.exportPDFData(ctx, reportID)
if err != nil {
return nil, fmt.Errorf("cannot export report PDF: %w", err)
}
watermarkedPDF, err := watermarkpdf.AddConfidentialWithTimestamp(pdfData, email)
if err != nil {
return nil, fmt.Errorf("cannot add watermark to PDF: %w", err)
}
return watermarkedPDF, nil
}
func (s ReportService) ExportPDFWithoutWatermark(
ctx context.Context,
reportID gid.GID,
) ([]byte, error) {
return s.exportPDFData(ctx, reportID)
}
func (s ReportService) exportPDFData(
ctx context.Context,
reportID gid.GID,
) ([]byte, error) {
report, err := s.Get(ctx, reportID)
if err != nil {
@@ -109,10 +133,5 @@ func (s ReportService) ExportPDF(
return nil, fmt.Errorf("cannot read PDF data: %w", err)
}
watermarkedPDF, err := watermarkpdf.AddConfidentialWithTimestamp(pdfData, email)
if err != nil {
return nil, fmt.Errorf("cannot add watermark to PDF: %w", err)
}
return watermarkedPDF, nil
return pdfData, nil
}