Skip to content

Commit

Permalink
feat: BE: Hyväksymispäätöskuulutuksen aineistot kansalaispuolella (#322)
Browse files Browse the repository at this point in the history
  • Loading branch information
haapamakim committed Aug 19, 2022
1 parent 13b716f commit 8326f14
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 5 deletions.
13 changes: 13 additions & 0 deletions backend/integrationtest/api/__snapshots__/api.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -3032,3 +3032,16 @@ Object {
},
}
`;

exports[`Api should search, load and save a project 30`] = `
Object {
"public S3 files Hyvaksymispaatos approved": Object {
"/T113 TS Esite.txt": Object {
"publishDate": "2022-06-09T00:00:00+03:00",
},
"/paatos/TYHJÄ.txt": Object {
"publishDate": "2022-06-09T00:00:00+03:00",
},
},
}
`;
4 changes: 3 additions & 1 deletion backend/integrationtest/api/api.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import {
verifyEmailsSent,
verifyVuorovaikutusSnapshot,
} from "./testUtil/tests";
import { takeS3Snapshot, takeYllapitoS3Snapshot } from "./testUtil/util";
import { takePublicS3Snapshot, takeS3Snapshot, takeYllapitoS3Snapshot } from "./testUtil/util";
import {
testImportNahtavillaoloAineistot,
testNahtavillaolo,
Expand Down Expand Up @@ -162,6 +162,8 @@ describe("Api", () => {
await takeYllapitoS3Snapshot(oid, "Hyvaksymispaatos created", "hyvaksymispaatos");

await testHyvaksymisPaatosVaiheApproval(oid, projektiPaallikko, userFixture);
await processQueue(fakeAineistoImportQueue);
await takePublicS3Snapshot(oid, "Hyvaksymispaatos approved", "hyvaksymispaatos");

});

Expand Down
23 changes: 23 additions & 0 deletions backend/src/aineisto/aineistoImporterLambda.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { aineistoService } from "./aineistoService";
import {
Aineisto,
HyvaksymisPaatosVaihe,
HyvaksymisPaatosVaiheJulkaisu,
NahtavillaoloVaihe,
NahtavillaoloVaiheJulkaisu,
Vuorovaikutus
Expand Down Expand Up @@ -135,6 +136,19 @@ async function handleNahtavillaoloVaihe(
}
}

async function handleHyvaksymisPaatosVaihe(
oid: string,
julkaisut: HyvaksymisPaatosVaiheJulkaisu[],
publishJulkaisuWithId: number
) {
const julkaisu = julkaisut
?.filter((j) => j.id == publishJulkaisuWithId)
.pop();
if (julkaisu) {
await aineistoService.synchronizeHyvaksymisPaatosVaiheJulkaisuAineistoToPublic(oid, julkaisu);
}
}

export const handleEvent: SQSHandler = async (event: SQSEvent) => {
setupLambdaMonitoring();
return AWSXRay.captureAsyncFunc("handler", async (subsegment) => {
Expand Down Expand Up @@ -181,6 +195,15 @@ export const handleEvent: SQSHandler = async (event: SQSEvent) => {
projekti.nahtavillaoloVaiheJulkaisut,
aineistoEvent.publishNahtavillaoloWithId
);
} else if (
aineistoEvent.type == ImportAineistoEventType.PUBLISH_HYVAKSYMISPAATOS &&
aineistoEvent.publishHyvaksymisPaatosWithId
) {
await handleHyvaksymisPaatosVaihe(
oid,
projekti.hyvaksymisPaatosVaiheJulkaisut,
aineistoEvent.publishHyvaksymisPaatosWithId
);
}
}
} finally {
Expand Down
27 changes: 25 additions & 2 deletions backend/src/aineisto/aineistoService.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Aineisto, NahtavillaoloVaiheJulkaisu, Vuorovaikutus } from "../database/model";
import { Aineisto, HyvaksymisPaatosVaiheJulkaisu, NahtavillaoloVaiheJulkaisu, Vuorovaikutus } from "../database/model";
import { aineistoImporterClient } from "./aineistoImporterClient";
import { log } from "../logger";
import { fileService } from "../files/fileService";
Expand Down Expand Up @@ -51,14 +51,22 @@ class AineistoService {
}

async publishNahtavillaolo(oid: string, nahtavillaoloId: number) {
// Import files from Velho
await aineistoImporterClient.importAineisto({
type: ImportAineistoEventType.PUBLISH_NAHTAVILLAOLO,
oid,
publishNahtavillaoloWithId: nahtavillaoloId,
});
}

async publishHyvaksymisPaatosVaihe(oid: string, hyvaksymisPaatosId: number) {
await aineistoImporterClient.importAineisto({
type: ImportAineistoEventType.PUBLISH_HYVAKSYMISPAATOS,
oid,
publishHyvaksymisPaatosWithId: hyvaksymisPaatosId,
});
}


/**
* Copy aineisto to public S3 with proper publish and expiration dates
*/
Expand Down Expand Up @@ -86,6 +94,21 @@ class AineistoService {
);
}

async synchronizeHyvaksymisPaatosVaiheJulkaisuAineistoToPublic(
oid: string,
julkaisu: HyvaksymisPaatosVaiheJulkaisu
): Promise<void> {
const publishDate = parseDate(julkaisu.kuulutusPaiva);
if (!publishDate) {
throw new Error("HyvaksymisPaatosVaiheJulkaisua ei voi julkaista jos vuorovaikutusJulkaisuPaiva ei ole asetettu");
}
await synchronizeAineistoToPublic(
oid,
new ProjektiPaths(oid).hyvaksymisPaatosVaihe(julkaisu),
publishDate
);
}

async deleteAineisto(
oid: string,
aineisto: Aineisto,
Expand Down
2 changes: 2 additions & 0 deletions backend/src/aineisto/importAineistoEvent.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
export enum ImportAineistoEventType {
IMPORT = "IMPORT",
PUBLISH_NAHTAVILLAOLO = "PUBLISH_NAHTAVILLAOLO",
PUBLISH_HYVAKSYMISPAATOS = "PUBLISH_HYVAKSYMISPAATOS",
}

export type ImportAineistoEvent = {
type: ImportAineistoEventType;
oid: string;
publishVuorovaikutusWithNumero?: number;
publishNahtavillaoloWithId?: number;
publishHyvaksymisPaatosWithId?: number;
};
3 changes: 2 additions & 1 deletion backend/src/handler/tila/hyvaksymisPaatosVaiheTilaManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { TilaManager } from "./TilaManager";
import { DBProjekti, HyvaksymisPaatosVaihe } from "../../database/model";
import { asiakirjaAdapter } from "../asiakirjaAdapter";
import { projektiDatabase } from "../../database/projektiDatabase";
import { aineistoService } from "../../aineisto/aineistoService";

function getHyvaksymisPaatosVaihe(projekti: DBProjekti): HyvaksymisPaatosVaihe {
const hyvaksymisPaatosVaihe = projekti.hyvaksymisPaatosVaihe;
Expand Down Expand Up @@ -32,7 +33,6 @@ class HyvaksymisPaatosVaiheTilaManager extends TilaManager {
julkaisu.tila = HyvaksymisPaatosVaiheTila.ODOTTAA_HYVAKSYNTAA;
julkaisu.muokkaaja = muokkaaja.uid;
await projektiDatabase.insertHyvaksymisPaatosVaiheJulkaisu(projekti.oid, julkaisu);
// TODO await aineistoService.publishHyvaksymisPaatosVaihe(projekti.oid, julkaisu.id);
}

async approve(projekti: DBProjekti, projektiPaallikko: NykyinenKayttaja): Promise<void> {
Expand All @@ -48,6 +48,7 @@ class HyvaksymisPaatosVaiheTilaManager extends TilaManager {
// TODO: generoi PDFt

await projektiDatabase.updateHyvaksymisPaatosVaiheJulkaisu(projekti, julkaisu);
await aineistoService.publishHyvaksymisPaatosVaihe(projekti.oid, julkaisu.id);
}

async reject(projekti: DBProjekti, syy: string): Promise<void> {
Expand Down
3 changes: 2 additions & 1 deletion backend/src/handler/tila/nahtavillaoloTilaManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class NahtavillaoloTilaManager extends TilaManager {
nahtavillaoloVaiheJulkaisu.tila = NahtavillaoloVaiheTila.ODOTTAA_HYVAKSYNTAA;
nahtavillaoloVaiheJulkaisu.muokkaaja = muokkaaja.uid;
await projektiDatabase.insertNahtavillaoloVaiheJulkaisu(projekti.oid, nahtavillaoloVaiheJulkaisu);
await aineistoService.publishNahtavillaolo(projekti.oid, nahtavillaoloVaiheJulkaisu.id);
}

async approve(projekti: DBProjekti, projektiPaallikko: NykyinenKayttaja): Promise<void> {
Expand All @@ -49,6 +48,8 @@ class NahtavillaoloTilaManager extends TilaManager {
// TODO: generoi PDFt

await projektiDatabase.updateNahtavillaoloVaiheJulkaisu(projekti, julkaisuWaitingForApproval);

await aineistoService.publishNahtavillaolo(projekti.oid, julkaisuWaitingForApproval.id);
}

async reject(projekti: DBProjekti, syy: string): Promise<void> {
Expand Down

0 comments on commit 8326f14

Please sign in to comment.