Skip to content

Commit

Permalink
Legg etikett til representasjon fullmakt (#572)
Browse files Browse the repository at this point in the history
* La til etiketten til representasjon fullmakt

* Slettet status feltet av FullmaktData

* Revertert endringer til package.json

* Endret fullmakt api og fullmakt data klass

* La til features som dependency til useEffect i data-fetcher

* Renamed etikett <Representasjon Fullmakt> til <Fullmakt>

* Fjernet !! sjekk på enhetId

---------

Co-authored-by: Sneha Desai <[email protected]>
  • Loading branch information
sneha-d-desai and Sneha Desai committed Jul 12, 2024
1 parent cf735d0 commit 5ed8f4e
Show file tree
Hide file tree
Showing 10 changed files with 96 additions and 24 deletions.
33 changes: 32 additions & 1 deletion src/api/veilarbperson.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,31 @@ export interface VergeOgFullmakt {
fullmakt: Fullmakt[];
}

export interface FullmaktDTO {
fullmakt: FullmaktData[];
}

export interface FullmaktData {
fullmaktsgiver: StringOrNothing;
fullmektig: StringOrNothing;
omraade: OmraadeMedHandling[];
gyldigFraOgMed: StringOrNothing;
gyldigTilOgMed: StringOrNothing;
fullmaktsgiverNavn: StringOrNothing;
fullmektigsNavn: StringOrNothing;
}

export interface OmraadeMedHandling {
tema: StringOrNothing;
handling: OmraadeHandlingType[];
}

export enum OmraadeHandlingType {
LES = 'LES',
KOMMUNISER = 'KOMMUNISER',
SKRIV = 'SKRIV'
}

export interface SpraakTolk {
tegnspraak: StringOrNothing;
talespraak: StringOrNothing;
Expand Down Expand Up @@ -90,7 +115,7 @@ export interface RegistreringData {
jobbetSammenhengendeSeksAvTolvSisteManeder: boolean;
innsatsgruppe: InnsatsgruppeType;
};
manueltRegistrertAv: {} | null;
manueltRegistrertAv: object | null;
};
}

Expand All @@ -108,6 +133,12 @@ export function fetchVergeOgFullmakt(fnr: string, behandlingsnummer: string): Ax
} as PdlRequest);
}

export function fetchFullmakt(fnr: string): AxiosPromise<FullmaktDTO> {
return axiosInstance.post<FullmaktDTO>(`/veilarbperson/api/v3/person/hent-fullmakt`, {
fnr: fnr
} as PersonRequest);
}

export function fetchSpraakTolk(fnr: string, behandlingsnummer: string): AxiosPromise<SpraakTolk> {
return axiosInstance.post<SpraakTolk>(`/veilarbperson/api/v3/person/hent-tolk`, {
fnr: fnr,
Expand Down
6 changes: 5 additions & 1 deletion src/api/veilarbpersonflatefs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ import { axiosInstance } from './utils';
export const BRUK_GAMMEL_ARBEIDSREGISTRERING_URL = 'veilarbvisitkortfs.bruk-gammel-arbeidsregistrering-url';

export const HUSKELAPP = 'veilarbportefoljeflatefs.huskelapp';
export const ALL_TOGGLES = [BRUK_GAMMEL_ARBEIDSREGISTRERING_URL, HUSKELAPP];

export const BRUK_NY_KILDE_TIL_FULLMAKT = 'obo.personflate.reprfullmakt';

export const ALL_TOGGLES = [BRUK_GAMMEL_ARBEIDSREGISTRERING_URL, HUSKELAPP, BRUK_NY_KILDE_TIL_FULLMAKT];

export interface OboUnleashFeatures {
[BRUK_GAMMEL_ARBEIDSREGISTRERING_URL]: boolean;
[HUSKELAPP]: boolean;
[BRUK_NY_KILDE_TIL_FULLMAKT]: boolean;
}

export function useFetchFeaturesFromOboUnleash(): AxiosPromise<OboUnleashFeatures> {
Expand Down
13 changes: 9 additions & 4 deletions src/component/data-fetcher.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ import React, { useEffect } from 'react';
import { useDataStore } from '../store/data-store';
import { useAppStore } from '../store/app-store';
import { fetchOppfolging, useOppfolgingsstatus } from '../api/veilarboppfolging';
import { fetchPersonalia, fetchSpraakTolk, fetchVergeOgFullmakt } from '../api/veilarbperson';
import { fetchFullmakt, fetchPersonalia, fetchSpraakTolk, fetchVergeOgFullmakt } from '../api/veilarbperson';
import { fetchInnloggetVeileder, fetchVeilederePaEnhet } from '../api/veilarbveileder';
import { ifResponseHasData } from '../util/utils';
import { useAxiosFetcher } from '../util/hook/use-axios-fetcher';
import './data-fetcher.less';
import { isAnyLoadingOrNotStarted } from '../api/utils';
import { Loader } from '@navikt/ds-react';
import { hentGjeldendeEskaleringsvarsel } from '../api/veilarbdialog';
import { useFetchFeaturesFromOboUnleash } from '../api/veilarbpersonflatefs';
import { BRUK_NY_KILDE_TIL_FULLMAKT, useFetchFeaturesFromOboUnleash } from '../api/veilarbpersonflatefs';

export function DataFetcher(props: { children: React.ReactNode }) {
const { brukerFnr, visVeilederVerktoy } = useAppStore();
Expand All @@ -22,7 +22,9 @@ export function DataFetcher(props: { children: React.ReactNode }) {
setFeatures,
setVergeOgFullmakt,
setSpraakTolk,
setGjeldendeEskaleringsvarsel
setGjeldendeEskaleringsvarsel,
setFullmakt,
features
} = useDataStore();

const oppfolgingFetcher = useAxiosFetcher(fetchOppfolging);
Expand All @@ -31,6 +33,7 @@ export function DataFetcher(props: { children: React.ReactNode }) {
const personaliaFetcher = useAxiosFetcher(fetchPersonalia);
const veilederePaEnhetFetcher = useAxiosFetcher(fetchVeilederePaEnhet);
const vergeOgFullmaktFetcher = useAxiosFetcher(fetchVergeOgFullmakt);
const fullmaktFetcher = useAxiosFetcher(fetchFullmakt);
const spraakTolkFetcher = useAxiosFetcher(fetchSpraakTolk);
const gjeldendeEskaleringsvarselFetcher = useAxiosFetcher(hentGjeldendeEskaleringsvarsel);
const { data: oppfolgingsstatus, isLoading: oppfolgingsstatusIsLoading } = useOppfolgingsstatus(brukerFnr);
Expand All @@ -47,10 +50,12 @@ export function DataFetcher(props: { children: React.ReactNode }) {
.catch();
}
vergeOgFullmaktFetcher.fetch(brukerFnr, behandlingsnummer).then(ifResponseHasData(setVergeOgFullmakt)).catch();
features[BRUK_NY_KILDE_TIL_FULLMAKT] &&
fullmaktFetcher.fetch(brukerFnr).then(ifResponseHasData(setFullmakt)).catch();
spraakTolkFetcher.fetch(brukerFnr, behandlingsnummer).then(ifResponseHasData(setSpraakTolk)).catch();
personaliaFetcher.fetch(brukerFnr, behandlingsnummer).then(ifResponseHasData(setPersonalia)).catch();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [brukerFnr, visVeilederVerktoy]);
}, [brukerFnr, visVeilederVerktoy, features]);

useEffect(() => {
innloggetVeilederFetcher.fetch().then(ifResponseHasData(setInnloggetVeileder)).catch();
Expand Down
9 changes: 7 additions & 2 deletions src/component/personinfo/components/etiketter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { ifResponseHasData, isEmpty } from '../../../util/utils';
import visibleIf from '../../components/visible-if';
import { OrNothing } from '../../../util/type/utility-types';
import { Tag, TagProps } from '@navikt/ds-react';
import { BRUK_NY_KILDE_TIL_FULLMAKT } from '../../../api/veilarbpersonflatefs';

const Advarsel = visibleIf(({ children }: Omit<TagProps, 'variant'>) => (
<Tag variant="error" size="small" className="etikett">
Expand Down Expand Up @@ -54,7 +55,8 @@ function manglerVedtak(oppfolging: OrNothing<OppfolgingStatus>): boolean {
function Etiketter() {
const { brukerFnr } = useAppStore();
const { data: oppfolgingsstatus } = useOppfolgingsstatus(brukerFnr);
const { gjeldendeEskaleringsvarsel, oppfolging, personalia, vergeOgFullmakt, spraakTolk } = useDataStore();
const { gjeldendeEskaleringsvarsel, oppfolging, personalia, vergeOgFullmakt, fullmakt, spraakTolk, features } =
useDataStore();

const [innsatsgruppe, setInnsatsgruppe] = useState<OrNothing<InnsatsgruppeType>>(null);

Expand All @@ -79,7 +81,10 @@ function Etiketter() {
<Advarsel visible={personalia?.sikkerhetstiltak}>{personalia?.sikkerhetstiltak}</Advarsel>
<Advarsel visible={personalia?.egenAnsatt}>Skjermet</Advarsel>
<Fokus visible={!isEmpty(vergeOgFullmakt?.vergemaalEllerFremtidsfullmakt)}>Vergemål</Fokus>
<Fokus visible={!isEmpty(vergeOgFullmakt?.fullmakt)}>Fullmakt</Fokus>
{!features[BRUK_NY_KILDE_TIL_FULLMAKT] && (
<Fokus visible={!isEmpty(vergeOgFullmakt?.fullmakt)}>Fullmakt</Fokus>
)}
{features[BRUK_NY_KILDE_TIL_FULLMAKT] && <Fokus visible={!isEmpty(fullmakt?.fullmakt)}>Fullmakt</Fokus>}
<Fokus visible={spraakTolk?.tegnspraak}>Tegnspråktolk</Fokus>
<Fokus visible={spraakTolk?.talespraak}>Språktolk</Fokus>
<Fokus visible={oppfolging?.underKvp}>KVP</Fokus>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ function EskaleringsvarselHistorikkKomponent({ innslag }: EskaleringsvarselHisto
const begrunnelse = innslag.avsluttetBegrunnelse || innslag.opprettetBegrunnelse;
const overskrift = innslag.avsluttetDato != null ? 'Varsel deaktivert' : 'Varsel sendt';

let begrunnelseTekst =
const begrunnelseTekst =
begrunnelse && begrunnelse.length > ESKALERING_MAX_LENGTH
? `${begrunnelse.substring(0, ESKALERING_MAX_LENGTH)}... `
: `${begrunnelse} `;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ interface InnstillingHistorikkKomponentProps {
const ESKALERING_MAX_LENGTH = 120;

type InnstillingsHistorikkTypeTilTekst = {
[key in InnstillingsHistorikkType | 'ESKALERING_STARTET' | 'ESKALERING_STOPPET']: string
}
[key in InnstillingsHistorikkType | 'ESKALERING_STARTET' | 'ESKALERING_STOPPET']: string;
};

const typeTilTekst: InnstillingsHistorikkTypeTilTekst = {
SATT_TIL_DIGITAL: 'Endret til digital oppfølging',
Expand All @@ -29,7 +29,7 @@ const typeTilTekst: InnstillingsHistorikkTypeTilTekst = {
function InnstillingHistorikkKomponent({ innstillingsHistorikk }: InnstillingHistorikkKomponentProps) {
const { type, begrunnelse, dialogId } = innstillingsHistorikk;

let begrunnelseTekst =
const begrunnelseTekst =
begrunnelse && begrunnelse.length > ESKALERING_MAX_LENGTH
? `${begrunnelse.substring(0, ESKALERING_MAX_LENGTH)}... `
: `${begrunnelse} `;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ function OppgaveInnerForm({
tema={tema}
veilederId={veilederId}
formikProps={formikProps}
enhetId={!!enhetId ? enhetId : avsenderenhetId}
enhetId={enhetId || avsenderenhetId}
/>
</div>
<OpprettOppgaveBeskrivelseTekstArea />
Expand Down
34 changes: 26 additions & 8 deletions src/mock/api/veilarbperson.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// import { rest } from 'msw';
// import { RequestHandlersList } from 'msw/lib/types/setupWorker/glossary';
import {
HarBruktNivaa4Type,
Personalia,
PersonaliaTelefon,
RegistreringData,
SpraakTolk,
VergeOgFullmakt
VergeOgFullmakt,
FullmaktDTO,
OmraadeHandlingType
} from '../../api/veilarbperson';
import { defaultNetworkResponseDelay } from '../config';
import { delay, http, HttpResponse, RequestHandler } from 'msw';
Expand Down Expand Up @@ -98,6 +98,25 @@ const mockVergeOgFullmakt: VergeOgFullmakt = {
]
};

const mockFullmakt: FullmaktDTO = {
fullmakt: [
{
fullmaktsgiver: '19827397213',
fullmektig: '04877498455',
omraade: [
{
tema: 'Oppfølging',
handling: [OmraadeHandlingType.LES, OmraadeHandlingType.SKRIV, OmraadeHandlingType.KOMMUNISER]
}
],
gyldigFraOgMed: '2024-06-04',
gyldigTilOgMed: '2025-05-31',
fullmaktsgiverNavn: 'SMAL ARK',
fullmektigsNavn: 'IDIOTSIKKER PERSILLE'
}
]
};

const mockSpraakTolk: SpraakTolk = {
tegnspraak: 'Norsk',
talespraak: 'Engelsk'
Expand All @@ -113,27 +132,26 @@ const mockRegistrering: RegistreringData = {
export const veilarbpersonHandlers: RequestHandler[] = [
http.post('/veilarbperson/api/v3/person/hent-registrering', async () => {
await delay(defaultNetworkResponseDelay);

return HttpResponse.json(mockRegistrering);
}),
http.get('/veilarbperson/api/person/:fnr/harNivaa4', async () => {
await delay(defaultNetworkResponseDelay);

return HttpResponse.json(mockHarBruktNivaa4);
}),
http.post('/veilarbperson/api/v3/hent-person', async () => {
await delay(defaultNetworkResponseDelay);

return HttpResponse.json(mockPersonaliaV2);
}),
http.post('/veilarbperson/api/v3/person/hent-vergeOgFullmakt', async () => {
await delay(defaultNetworkResponseDelay);

return HttpResponse.json(mockVergeOgFullmakt);
}),
http.post('/veilarbperson/api/v3/person/hent-fullmakt', async () => {
await delay(defaultNetworkResponseDelay);
return HttpResponse.json(mockFullmakt);
}),
http.post('/veilarbperson/api/v3/person/hent-tolk', async () => {
await delay(defaultNetworkResponseDelay);

return HttpResponse.json(mockSpraakTolk);
})
];
10 changes: 8 additions & 2 deletions src/mock/api/veilarbpersonflatefs.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
import { BRUK_GAMMEL_ARBEIDSREGISTRERING_URL, HUSKELAPP, OboUnleashFeatures } from '../../api/veilarbpersonflatefs';
import {
BRUK_GAMMEL_ARBEIDSREGISTRERING_URL,
HUSKELAPP,
OboUnleashFeatures,
BRUK_NY_KILDE_TIL_FULLMAKT
} from '../../api/veilarbpersonflatefs';
import { defaultNetworkResponseDelay } from '../config';
import { delay, http, HttpResponse, RequestHandler } from 'msw';

const mockFeatures: OboUnleashFeatures = {
[BRUK_GAMMEL_ARBEIDSREGISTRERING_URL]: true,
[HUSKELAPP]: true
[HUSKELAPP]: true,
[BRUK_NY_KILDE_TIL_FULLMAKT]: true
};

export const veilarbpersonflatefsHandlers: RequestHandler[] = [
Expand Down
5 changes: 4 additions & 1 deletion src/store/data-store.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import constate from 'constate';
import { useState } from 'react';
import { Oppfolging } from '../api/veilarboppfolging';
import { HarBruktNivaa4Type, Personalia, SpraakTolk, VergeOgFullmakt } from '../api/veilarbperson';
import { HarBruktNivaa4Type, Personalia, FullmaktDTO, SpraakTolk, VergeOgFullmakt } from '../api/veilarbperson';
import { VeilederData, VeilederListe } from '../api/veilarbveileder';
import { GjeldendeEskaleringsvarsel } from '../api/veilarbdialog';
import { OboUnleashFeatures } from '../api/veilarbpersonflatefs';
Expand All @@ -13,6 +13,7 @@ export const [DataStore, useDataStore] = constate(() => {
const [innloggetVeileder, setInnloggetVeileder] = useState<VeilederData>();
const [personalia, setPersonalia] = useState<Personalia>();
const [vergeOgFullmakt, setVergeOgFullmakt] = useState<VergeOgFullmakt>();
const [fullmakt, setFullmakt] = useState<FullmaktDTO>();
const [spraakTolk, setSpraakTolk] = useState<SpraakTolk>();
const [harBruktNivaa4, setHarBruktNivaa4] = useState<HarBruktNivaa4Type>();
const [features, setFeatures] = useState<OboUnleashFeatures>(placeholder);
Expand All @@ -37,6 +38,8 @@ export const [DataStore, useDataStore] = constate(() => {
setVeilederePaEnhet,
vergeOgFullmakt,
setVergeOgFullmakt,
fullmakt,
setFullmakt,
spraakTolk,
setSpraakTolk,
gjeldendeEskaleringsvarsel,
Expand Down

0 comments on commit 5ed8f4e

Please sign in to comment.