Skip to content

Commit

Permalink
flytt refusjon status inn i user info
Browse files Browse the repository at this point in the history
  • Loading branch information
kenglxn committed Oct 18, 2023
1 parent 79039ef commit 5a910f0
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 88 deletions.
31 changes: 0 additions & 31 deletions server/mock/refusjonsStatusMock.js

This file was deleted.

27 changes: 26 additions & 1 deletion server/mock/userInfoMock.js
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ export const mock = (app) => {
id: 'inntektsmelding',
tjenestekode: '4936',
tjenesteversjon: '1',
organisasjoner: ['182345674', '118345674'],
organisasjoner: ['182345674', '118345674', '999999999', '121488424'],
},
...alleTjenester
.filter(({ id }) => id !== 'mentortilskudd' && id !== 'inntektsmelding')
Expand Down Expand Up @@ -326,6 +326,31 @@ export const mock = (app) => {
antallSykmeldte: 4,
},
],
refusjoner: [
{
virksomhetsnummer: '999999999',
statusoversikt: {
KLAR_FOR_INNSENDING: 3,
FOR_TIDLIG: 1,
},
tilgang: true,
},
{
virksomhetsnummer: '121488424',
statusoversikt: {
KLAR_FOR_INNSENDING: 1,
FOR_TIDLIG: 2,
},
tilgang: true,
},
{
virksomhetsnummer: '182345674',
statusoversikt: {
FOR_TIDLIG: 2,
},
tilgang: true,
},
],
});
}
});
Expand Down
1 change: 0 additions & 1 deletion server/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,6 @@ const main = async () => {
(await import('./mock/antallArbeidsforholdMock.js')).mock(app);
(await import('./mock/tiltakApiMock.js')).mock(app);
(await import('./mock/sykefraværMock.js')).mock(app);
(await import('./mock/refusjonsStatusMock.js')).mock(app);
(await import('./mock/presenterteKandidaterMock.js')).mock(app);
(await import('./mock/storageMock.js')).mock(app);
(await import('./mock/kontaktinfoApiMock.js')).mock(app);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,38 @@
import React, {useContext} from 'react';
import {refosoURL} from '../../../../lenker';
import React, { useContext } from 'react';
import { refosoURL } from '../../../../lenker';
import tiltakrefusjonikon from './tiltakrefusjonboks.svg';
import {StortTall, Tjenesteboks} from "../Tjenesteboks";
import {OrganisasjonsDetaljerContext} from "../../../OrganisasjonDetaljerProvider";
import { StortTall, Tjenesteboks } from '../Tjenesteboks';
import { OrganisasjonsDetaljerContext } from '../../../OrganisasjonDetaljerProvider';

const TiltakRefusjonboks = () => {
const { valgtOrganisasjon } = useContext(OrganisasjonsDetaljerContext);
if (valgtOrganisasjon === undefined) {
return null;
}

const url = valgtOrganisasjon.organisasjon.OrganizationNumber !== ''
? `${refosoURL}?bedrift=${valgtOrganisasjon.organisasjon.OrganizationNumber}`
: refosoURL;
const url =
valgtOrganisasjon.organisasjon.OrganizationNumber !== ''
? `${refosoURL}?bedrift=${valgtOrganisasjon.organisasjon.OrganizationNumber}`
: refosoURL;

const klareForInnsending = valgtOrganisasjon.refusjonstatus["KLAR_FOR_INNSENDING"]
const klareForInnsending = valgtOrganisasjon.refusjonstatus['KLAR_FOR_INNSENDING'];

return <Tjenesteboks
return (
<Tjenesteboks
ikon={tiltakrefusjonikon}
href={url}
tittel="Refusjon for lønnstilskudd og sommerjobb"
aria-label="Refusjon for lønnstilskudd og sommerjobb. Søk og se refusjon for lønnstilskudd og sommerjobb"
>
{klareForInnsending === undefined ? null : <>
<StortTall>{klareForInnsending}</StortTall> refusjoner klare for innsending. <br/>
</>}
{klareForInnsending === undefined ? null : (
<>
<StortTall>{klareForInnsending}</StortTall> refusjoner klare for innsending.{' '}
<br />
</>
)}
Søk og se refusjon
</Tjenesteboks>;
</Tjenesteboks>
);
};

export default TiltakRefusjonboks;
15 changes: 2 additions & 13 deletions src/App/OrganisasjonerOgTilgangerProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import React, { FunctionComponent, useContext, useEffect, useMemo, useState } from 'react';
import { hentRefusjonstatus, RefusjonStatus } from '../api/dnaApi';
import * as Record from '../utils/Record';
import { AltinnTilgangssøknad, hentAltinnTilgangssøknader } from '../altinn/tilganger';
import { altinntjeneste, AltinntjenesteId } from '../altinn/tjenester';
Expand All @@ -11,7 +10,7 @@ import * as Sentry from '@sentry/browser';
import { byggOrganisasjonstre } from './ByggOrganisasjonstre';
import { useEffectfulAsyncFunction } from './hooks/useValueFromEffect';
import { Map, Set } from 'immutable';
import { DigiSyfoOrganisasjon, useUserInfo } from './useUserInfo';
import { DigiSyfoOrganisasjon, RefusjonStatus, useUserInfo } from './useUserInfo';

type orgnr = string;

Expand Down Expand Up @@ -167,17 +166,6 @@ export const OrganisasjonerOgTilgangerProvider: FunctionComponent = (props) => {
.catch((error) => {
Sentry.captureException(error);
setAltinnTilgangssøknader([]);
}),
hentRefusjonstatus()
.then((refusjonstatus) => {
setAlleRefusjonsstatus(refusjonstatus);
})
.catch((error) => {
Sentry.captureException(error);
setAlleRefusjonsstatus([]);
// har ikke egen alert type på dette, da det mest sannsynlig er altinn som feiler
setVisFeilmelding(true);
addAlert('TilgangerAltinn');
})
);
}, []);
Expand All @@ -203,6 +191,7 @@ export const OrganisasjonerOgTilgangerProvider: FunctionComponent = (props) => {
? SyfoTilgang.TILGANG
: SyfoTilgang.IKKE_TILGANG
);
setAlleRefusjonsstatus(userInfo.refusjoner);
amplitude.setUserProperties({ syfotilgang: userInfo.digisyfoOrganisasjoner.length > 0 });
}, [JSON.stringify(userInfo)]);

Expand Down
10 changes: 10 additions & 0 deletions src/App/useUserInfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@ const DigiSyfoOrganisasjon = z.object({
antallSykmeldte: z.number(),
});
export type DigiSyfoOrganisasjon = z.infer<typeof DigiSyfoOrganisasjon>;
const RefusjonStatus = z.object({
virksomhetsnummer: z.string(),
statusoversikt: z.object({
KLAR_FOR_INNSENDING: z.number().optional(),
}),
tilgang: z.boolean(),
});
export type RefusjonStatus = z.infer<typeof RefusjonStatus>;
const UserInfoRespons = z.object({
altinnError: z.boolean(),
digisyfoError: z.boolean(),
Expand All @@ -34,6 +42,7 @@ const UserInfoRespons = z.object({
antallSykmeldte: z.number(),
})
),
refusjoner: z.array(RefusjonStatus),
});
type UserInfoDto = z.infer<typeof UserInfoRespons>;
type UserInfo = UserInfoDto & {
Expand Down Expand Up @@ -61,6 +70,7 @@ export const useUserInfo = (): UserInfo => {
errorRetryInterval: 100,
fallbackData: {
organisasjoner: [],
refusjoner: [],
digisyfoOrganisasjoner: [],
tilganger: Record.map(altinntjeneste, () => Set<string>()),
altinnError: false,
Expand Down
29 changes: 0 additions & 29 deletions src/api/dnaApi.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,3 @@
import { z } from 'zod';
import * as Sentry from '@sentry/browser';

const RefusjonStatus = z.object({
virksomhetsnummer: z.string(),
statusoversikt: z.object({
KLAR_FOR_INNSENDING: z.number().optional(),
}),
tilgang: z.boolean(),
});
const RefusjonStatusResponse = z.array(RefusjonStatus);
export type RefusjonStatus = z.infer<typeof RefusjonStatus>;

const refusjonstatusURL = '/min-side-arbeidsgiver/api/refusjon_status';
export async function hentRefusjonstatus(): Promise<RefusjonStatus[]> {
const respons = await fetch(refusjonstatusURL);
if (respons.ok) {
const data = await respons.json();
try {
return RefusjonStatusResponse.parse(data);
} catch (error) {
Sentry.captureException(error);
}
}
throw new Error(
`Kall til ${refusjonstatusURL} feilet med ${respons.status}:${respons.statusText}`
);
}

const sjekkInnloggetURL = '/min-side-arbeidsgiver/api/innlogget';
export const sjekkInnlogget = async (): Promise<boolean> => {
const { ok } = await fetch(sjekkInnloggetURL);
Expand Down

0 comments on commit 5a910f0

Please sign in to comment.