Skip to content

Commit

Permalink
fix: korjaa Velhon tietomallin päivittymisen tuomat ongelmat (#259)
Browse files Browse the repository at this point in the history
  • Loading branch information
haapamakim committed Jun 9, 2022
1 parent 1635bf8 commit 2c8da06
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 8 deletions.
35 changes: 30 additions & 5 deletions backend/src/velho/velhoAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { Kayttajas } from "../personSearch/kayttajas";
import {
ProjektiProjekti,
ProjektirekisteriApiV2ProjektiOminaisuudet,
ProjektirekisteriApiV2ProjektiOminaisuudetVastuuhenkilo,
ProjektirekisteriApiV2ProjektiOminaisuudetVaylamuotoEnum,
} from "./projektirekisteri";
import mergeWith from "lodash/mergeWith";
Expand All @@ -14,6 +15,7 @@ import identity from "lodash/identity";
import isArray from "lodash/isArray";
import cloneDeep from "lodash/cloneDeep";
import difference from "lodash/difference";
import { log } from "../logger";

let metaDataJSON: any;

Expand Down Expand Up @@ -106,7 +108,7 @@ function getViranomainen(organisaatio: Organisaatio) {
export function adaptSearchResults(searchResults: ProjektiSearchResult[], kayttajas: Kayttajas): VelhoHakuTulos[] {
if (searchResults) {
return searchResults.map((result) => {
const projektiPaallikko = kayttajas.findByEmail(result.ominaisuudet.vastuuhenkilo);
const projektiPaallikko = kayttajas.findByEmail(getVastuuhenkiloEmail(result.ominaisuudet.vastuuhenkilo));
const projektiPaallikkoNimi =
projektiPaallikko && userService.hasPermissionLuonti(projektiPaallikko)
? adaptKayttaja(projektiPaallikko).nimi
Expand All @@ -123,9 +125,32 @@ export function adaptSearchResults(searchResults: ProjektiSearchResult[], kaytta
return [];
}

function getVastuuhenkiloEmail(vastuuhenkilo: ProjektirekisteriApiV2ProjektiOminaisuudetVastuuhenkilo): string {
if (vastuuhenkilo?.sahkoposti) {
return vastuuhenkilo?.sahkoposti;
}
// Support the data based on the old schema
return vastuuhenkilo as unknown as string;
}

function getKunnat(data: ProjektiProjekti) {
if (data.ominaisuudet.kunta) {
log.info({ kunta: data.ominaisuudet.kunta }); // TODO add support for object type when we have test data available
}
return data.ominaisuudet["muu-kunta"]?.split(",");
}

function getMaakunnat(data: ProjektiProjekti) {
if (data.ominaisuudet.maakunta) {
log.info({ maakunta: data.ominaisuudet.maakunta }); // TODO add support for object type when we have test data available
}
return data.ominaisuudet["muu-maakunta"]?.split(",");
}

export function adaptProjekti(data: ProjektiProjekti): { projekti: DBProjekti; vastuuhenkilo: string } {
const projektiTyyppi = getProjektiTyyppi(data.ominaisuudet.vaihe as any);
const viranomainen = getViranomainen(data.ominaisuudet.tilaajaorganisaatio as any);
const vastuuhenkiloEmail = getVastuuhenkiloEmail(data.ominaisuudet.vastuuhenkilo);
const projekti: DBProjekti = {
oid: "" + data.oid,
tyyppi: projektiTyyppi,
Expand All @@ -139,16 +164,16 @@ export function adaptProjekti(data: ProjektiProjekti): { projekti: DBProjekti; v
// TODO implementoi suomi-ruotsi -käännökset Viranomais-tiedolle backendissa
tilaajaOrganisaatio: metadata.organisaatiot[`${data.ominaisuudet.tilaajaorganisaatio}`].otsikko,
linkki: data.ominaisuudet.linkki,
kunnat: data.ominaisuudet.kunta?.split(","),
maakunnat: data.ominaisuudet.maakunta?.split(","),
vastuuhenkilonEmail: data.ominaisuudet.vastuuhenkilo,
kunnat: getKunnat(data),
maakunnat: getMaakunnat(data),
vastuuhenkilonEmail: vastuuhenkiloEmail,
},
kayttoOikeudet: [],
};

return {
projekti,
vastuuhenkilo: data.ominaisuudet.vastuuhenkilo,
vastuuhenkilo: vastuuhenkiloEmail,
};
}

Expand Down
4 changes: 3 additions & 1 deletion backend/src/velho/velhoClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,9 @@ export class VelhoClient {
try {
response = await projektiApi.projektirekisteriApiV2ProjektiProjektiOidGet(oid);
} catch (e) {
throw new VelhoError(e.message, e);
log.error(e);
return adaptProjekti(e.response.data.value); // TODO temporary hack, remove after velho has been fixed
// throw new VelhoError(e.message, e);
}
checkResponseIsOK(response, "loadProjekti with oid '" + oid + "'");
return adaptProjekti(response.data);
Expand Down
4 changes: 2 additions & 2 deletions backend/test/velho/fixture/velhoTieProjekti.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
"maku-indeksi": "100, 2000=100",
"hankekortti": null,
"kustannusarvio": 1,
"kunta": "Helsinki,Vantaa,Espoo",
"muu-kunta": "Helsinki,Vantaa,Espoo",
"paattyy": "1111-11-01T00:00:00Z",
"maakunta": "Uusimaa",
"muu-maakunta": "Uusimaa",
"vaylamuoto": [
"tie"
],
Expand Down

0 comments on commit 2c8da06

Please sign in to comment.