Skip to content

Commit

Permalink
feat: Aloituskuulutus: Draft-vesileima esikatselussa oleviin pdf-tied…
Browse files Browse the repository at this point in the history
…ostoihin
  • Loading branch information
haapamakim committed May 24, 2022
1 parent 52294ca commit f617900
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 50 deletions.
22 changes: 21 additions & 1 deletion backend/src/asiakirja/abstractPdf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ export abstract class AbstractPdf {
info: { Title: this.title },
lang: "fi",
displayTitle: true,
bufferPages: true,
});

const SRGB_IEC61966_ICC_PROFILE_B64 =
Expand Down Expand Up @@ -115,11 +116,30 @@ export abstract class AbstractPdf {
throw new Error("Method 'addContent()' must be implemented.");
}

public get pdf(): Promise<PDF> {
public pdf(esikatselu: boolean): Promise<PDF> {
this.addContent();
if (esikatselu) {
this.addDraftWatermark();
}
return this.finishPdfDocument();
}

private addDraftWatermark() {
this.doc.save();
const pageRange = this.doc.bufferedPageRange();
for (let page = pageRange.start; page < pageRange.start + pageRange.count; page++) {
this.doc.switchToPage(page);
const x = 100;
const y = 570;
this.doc
.rotate(-50, { origin: [x, y] })
.fontSize(120)
.opacity(0.1)
.text("LUONNOS", x, y, { width: 1000 });
this.doc.restore();
}
}

private finishPdfDocument() {
return new Promise<PDF>((resolve) => {
const buffers = Array<Buffer>();
Expand Down
12 changes: 7 additions & 5 deletions backend/src/asiakirja/asiakirjaService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ interface CreatePdfOptions {
vuorovaikutus?: Vuorovaikutus;
asiakirjaTyyppi: AsiakirjaTyyppi;
kieli: Kieli;
esikatselu: boolean;
}

export enum AsiakirjanMuoto {
Expand All @@ -38,6 +39,7 @@ export class AsiakirjaService {
aloitusKuulutusJulkaisu,
vuorovaikutus,
kieli,
esikatselu
}: CreatePdfOptions): Promise<PDF> {
let pdf: Promise<PDF>;
const asiakirjanMuoto = determineAsiakirjaMuoto(
Expand All @@ -49,10 +51,10 @@ export class AsiakirjaService {
case AsiakirjaTyyppi.ALOITUSKUULUTUS:
switch (asiakirjanMuoto) {
case AsiakirjanMuoto.TIE:
pdf = new AloitusKuulutus10T(aloitusKuulutusJulkaisu, kieli).pdf;
pdf = new AloitusKuulutus10T(aloitusKuulutusJulkaisu, kieli).pdf(esikatselu);
break;
case AsiakirjanMuoto.RATA:
pdf = new AloitusKuulutus10R(aloitusKuulutusJulkaisu, kieli).pdf;
pdf = new AloitusKuulutus10R(aloitusKuulutusJulkaisu, kieli).pdf(esikatselu);
break;
default:
throw new Error(
Expand All @@ -63,10 +65,10 @@ export class AsiakirjaService {
case AsiakirjaTyyppi.ILMOITUS_KUULUTUKSESTA:
switch (asiakirjanMuoto) {
case AsiakirjanMuoto.TIE:
pdf = new Ilmoitus12T(aloitusKuulutusJulkaisu, kieli).pdf;
pdf = new Ilmoitus12T(aloitusKuulutusJulkaisu, kieli).pdf(esikatselu);
break;
case AsiakirjanMuoto.RATA:
pdf = new Ilmoitus12R(aloitusKuulutusJulkaisu, kieli).pdf;
pdf = new Ilmoitus12R(aloitusKuulutusJulkaisu, kieli).pdf(esikatselu);
break;
default:
throw new Error(
Expand All @@ -78,7 +80,7 @@ export class AsiakirjaService {
switch (asiakirjanMuoto) {
case AsiakirjanMuoto.TIE:
case AsiakirjanMuoto.RATA:
pdf = new Kutsu20(projekti, vuorovaikutus, kieli, asiakirjanMuoto).pdf;
pdf = new Kutsu20(projekti, vuorovaikutus, kieli, asiakirjanMuoto).pdf(esikatselu);
break;
default:
throw new Error(
Expand Down
1 change: 1 addition & 0 deletions backend/src/handler/aloitusKuulutusHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ async function createAloituskuulutusPDF(
asiakirjaTyyppi,
aloitusKuulutusJulkaisu: julkaisuWaitingForApproval,
kieli,
esikatselu: false,
});
return fileService.createFileToProjekti({
oid: projekti.oid,
Expand Down
3 changes: 3 additions & 0 deletions backend/src/handler/asiakirjaHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export async function lataaAsiakirja({
aloitusKuulutusJulkaisu,
asiakirjaTyyppi,
kieli,
esikatselu: true,
});
} else {
if (muutokset) {
Expand All @@ -38,13 +39,15 @@ export async function lataaAsiakirja({
aloitusKuulutusJulkaisu: asiakirjaAdapter.adaptAloitusKuulutusJulkaisu(projektiWithChanges),
asiakirjaTyyppi,
kieli,
esikatselu: true,
});
} else {
// Previewing saved projekti
return asiakirjaService.createPdf({
aloitusKuulutusJulkaisu: asiakirjaAdapter.adaptAloitusKuulutusJulkaisu(projekti),
asiakirjaTyyppi,
kieli,
esikatselu: true,
});
}
}
Expand Down
2 changes: 2 additions & 0 deletions backend/src/vuorovaikutus/vuorovaikutusService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ class VuorovaikutusService {
aloitusKuulutusJulkaisu,
vuorovaikutus,
kieli: projektiInDB.kielitiedot.ensisijainenKieli,
esikatselu: false,
});

const vuorovaikutusKutsuPath = fileService.getVuorovaikutusPath(vuorovaikutus) + "/kutsu";
Expand All @@ -71,6 +72,7 @@ class VuorovaikutusService {
asiakirjaTyyppi: AsiakirjaTyyppi.YLEISOTILAISUUS_KUTSU,
vuorovaikutus,
kieli: projektiInDB.kielitiedot.ensisijainenKieli,
esikatselu: false,
});
emailOptions.attachments = [
{
Expand Down
3 changes: 3 additions & 0 deletions backend/test/asiakirja/asiakirjaService.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ describe("asiakirjaService", async () => {
aloitusKuulutusJulkaisu,
asiakirjaTyyppi: AsiakirjaTyyppi.ALOITUSKUULUTUS,
kieli,
esikatselu: true,
});
expect(pdf.sisalto.length).to.be.greaterThan(50000);
expect(pdf.nimi).to.eq(expectedFilename);
Expand Down Expand Up @@ -64,6 +65,7 @@ describe("asiakirjaService", async () => {
vuorovaikutus,
asiakirjaTyyppi: AsiakirjaTyyppi.YLEISOTILAISUUS_KUTSU,
kieli,
esikatselu: true,
});
// expect(pdf.sisalto.length).to.be.greaterThan(50000);
expect(pdf.nimi).to.eq(expectedFilename);
Expand All @@ -76,6 +78,7 @@ describe("asiakirjaService", async () => {
vuorovaikutus,
asiakirjaTyyppi: AsiakirjaTyyppi.YLEISOTILAISUUS_KUTSU,
kieli,
esikatselu: true,
});
expect(email).toMatchSnapshot();
}
Expand Down
Loading

0 comments on commit f617900

Please sign in to comment.