Skip to content

Commit

Permalink
OK-471: Korjataan tyypityksiä ...ToRemoteErrors-tiedostoista
Browse files Browse the repository at this point in the history
  • Loading branch information
heidilm committed Aug 30, 2024
1 parent 023c53b commit 2acb44a
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 42 deletions.
2 changes: 1 addition & 1 deletion src/main/app/src/types/formTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ type KoutaErrorResponse = {
errorType: string;
msg: string;
path: string;
meta?: { entiteetit: Array<string> };
meta?: { entiteetit?: Array<string> };
};

type KoutaErrorData = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { TFunction } from 'i18next';

import { LANGUAGES } from '#/src/constants';
import { RemoteErrorsToFormErrors } from '#/src/types/formTypes';

Expand Down Expand Up @@ -38,7 +40,7 @@ export const koulutusRemoteErrorsToFormErrors: RemoteErrorsToFormErrors = ({
}
if (path === 'tila') {
if (errorType === 'notYetJulkaistu' && /sora/i.test(msg)) {
const errorKey = t =>
const errorKey = (t: TFunction) =>
t('yleiset.riippuvuusEiJulkaistu', {
entity: t('yleiset.soraKuvaus'),
});
Expand Down
85 changes: 45 additions & 40 deletions src/main/app/src/utils/toteutus/toteutusRemoteErrorsToFormErrors.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { capitalize, map, findIndex } from 'lodash';
import { TFunction } from 'i18next';
import { capitalize, map, findIndex, isEmpty } from 'lodash';
import { match } from 'ts-pattern';

import { LANGUAGES, KOULUTUSTYYPPI } from '#/src/constants';
Expand Down Expand Up @@ -46,7 +47,7 @@ export const toteutusRemoteErrorsToFormErrors: RemoteErrorsToFormErrors = (
if (path === 'tila') {
if (errorType === 'notYetJulkaistu') {
if (/sora/i.test(msg)) {
const errorKey = t =>
const errorKey = (t: TFunction) =>
t('yleiset.riippuvuusEiJulkaistu', {
entity: t('yleiset.soraKuvaus'),
});
Expand Down Expand Up @@ -148,51 +149,55 @@ export const toteutusRemoteErrorsToFormErrors: RemoteErrorsToFormErrors = (
) {
const koulutustyyppi = formValues.koulutustyyppi;

const [liitetytEntiteetit, koulutustyyppiName]: Array<
Array<string>,
string
> = match(koulutustyyppi)
.with(KOULUTUSTYYPPI.KORKEAKOULUTUS_OPINTOKOKONAISUUS, () => [
formValues?.opintojaksojenLiittaminen?.opintojaksot,
'opintojakso',
])
const [liitetytEntiteetit, koulutustyyppiName] = match(koulutustyyppi)
.with(
KOULUTUSTYYPPI.KORKEAKOULUTUS_OPINTOKOKONAISUUS,
() =>
[
formValues?.opintojaksojenLiittaminen?.opintojaksot,
'opintojakso',
] as const
)
.with(
KOULUTUSTYYPPI.VAPAA_SIVISTYSTYO_MUU,
KOULUTUSTYYPPI.VAPAA_SIVISTYSTYO_OPISTOVUOSI,
() => [
formValues?.osaamismerkkienLiittaminen?.osaamismerkit,
'osaamismerkki',
]
() =>
[
formValues?.osaamismerkkienLiittaminen?.osaamismerkit,
'osaamismerkki',
] as const
)
.otherwise(() => []);

const indicesForOpintojaksotWithInvalidTila = map(meta?.entiteetit, oid =>
findIndex(liitetytEntiteetit, [`${koulutustyyppiName}.value`, oid])
).filter(i => i >= 0);

const fieldValue = index => {
return match(koulutustyyppi)
.with(
KOULUTUSTYYPPI.KORKEAKOULUTUS_OPINTOKOKONAISUUS,
() => `opintojaksojenLiittaminen.opintojaksot[${index}].opintojakso`
)
.with(
KOULUTUSTYYPPI.VAPAA_SIVISTYSTYO_MUU,
KOULUTUSTYYPPI.VAPAA_SIVISTYSTYO_OPISTOVUOSI,
() =>
`osaamismerkkienLiittaminen.osaamismerkit[${index}].osaamismerkki`
)
.otherwise(() => []);
};

return indicesForOpintojaksotWithInvalidTila.map(index => {
return {
field: fieldValue(index),
errorKey: `validointivirheet.invalidTilaForLiitetty${capitalize(
koulutustyyppiName
)}OnJulkaisu`,
if (!isEmpty(liitetytEntiteetit)) {
const indicesForOpintojaksotWithInvalidTila = map(meta?.entiteetit, oid =>
findIndex(liitetytEntiteetit, [`${koulutustyyppiName}.value`, oid])
).filter(i => i >= 0);

const fieldValue = (index: number) => {
return match(koulutustyyppi)
.with(
KOULUTUSTYYPPI.KORKEAKOULUTUS_OPINTOKOKONAISUUS,
() => `opintojaksojenLiittaminen.opintojaksot[${index}].opintojakso`
)
.with(
KOULUTUSTYYPPI.VAPAA_SIVISTYSTYO_MUU,
KOULUTUSTYYPPI.VAPAA_SIVISTYSTYO_OPISTOVUOSI,
() =>
`osaamismerkkienLiittaminen.osaamismerkit[${index}].osaamismerkki`
)
.otherwise(() => '');
};
});

return indicesForOpintojaksotWithInvalidTila.map(index => {
return {
field: fieldValue(index),
errorKey: `validointivirheet.invalidTilaForLiitetty${capitalize(
koulutustyyppiName
)}OnJulkaisu`,
};
});
}
}

if (errorType === 'invalidIsAvoinKorkeakoulutusIntegrity') {
Expand Down

0 comments on commit 2acb44a

Please sign in to comment.