Skip to content
This repository has been archived by the owner on Jun 7, 2024. It is now read-only.

Commit

Permalink
Opprett oppgave ved endret situasjon, featuretoggle og retting av skr…
Browse files Browse the repository at this point in the history
…ivefeil
  • Loading branch information
robertkittilsen committed Sep 18, 2023
1 parent 4c89e0e commit 6d6dcd6
Show file tree
Hide file tree
Showing 11 changed files with 59 additions and 19 deletions.
21 changes: 20 additions & 1 deletion src/contexts/besvarelse.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useFeatureToggleData, FeatureToggles } from './feature-toggles';
import { useAmplitudeData } from '../komponenter/hent-initial-data/amplitude-provider';

import { fetchToJson } from '../ducks/api-utils';
import { BESVARELSE_URL, OPPRETT_DIALOG_URL, requestConfig } from '../ducks/api';
import { BESVARELSE_URL, OPPRETT_DIALOG_URL, OPPRETT_OPPGAVE_URL, requestConfig } from '../ducks/api';
import {
DinSituasjonSvar,
UtdanningSvar,
Expand Down Expand Up @@ -116,6 +116,7 @@ export type BrukerEllerNav = 'BRUKER' | 'VEILEDER' | 'SYSTEM';
export type BesvarelseRequest = {
tekst?: string;
overskrift?: string;
oppgaveBeskrivelse?: string;
venterPaaSvarFraNav?: boolean;
oppdatering: DinSituasjonRequest;
};
Expand Down Expand Up @@ -172,12 +173,27 @@ async function opprettDialog(data: {
});
}

async function opprettOppgave(data: { oppgaveBeskrivelse?: string }): Promise<null | { id: string }> {
if (!data.oppgaveBeskrivelse) {
return Promise.resolve(null);
}

return fetchToJson(OPPRETT_OPPGAVE_URL, {
...requestConfig(),
method: 'POST',
body: JSON.stringify({
beskrivelse: data.oppgaveBeskrivelse,
}),
});
}

function BesvarelseProvider(props: { children: ReactNode }) {
const featureToggles = useFeatureToggleData();
const { oppdaterAmplitudeData } = useAmplitudeData();
const [besvarelse, settBesvarelse] = useState<BesvarelseResponse>(null);

const erToggletPa = featureToggles[FeatureToggles.BRUK_ENDRING_AV_SITUASJON];
const erOpprettOppgaveToggletPaa = featureToggles[FeatureToggles.BRUK_OPPRETT_OPPGAVE];

const hentBesvarelse = async () => {
try {
Expand All @@ -199,6 +215,9 @@ function BesvarelseProvider(props: { children: ReactNode }) {
body: JSON.stringify({ ...data.oppdatering }),
});
settBesvarelse(behov);
if (erOpprettOppgaveToggletPaa) {
await opprettOppgave(data);
}
} catch (error) {
console.error(error);
throw error;
Expand Down
9 changes: 7 additions & 2 deletions src/contexts/feature-toggles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export enum FeatureToggles {
BRUK_ENDRING_AV_SITUASJON = 'aia.bruk-endring-av-situasjon',
BRUK_MELDEKORT_MIKROFRONTEND = 'aia.bruk-meldekort-mikrofrontend',
BRUK_REAKTIVERING_KNAPP = 'aia.bruk-reaktivering-knapp',
BRUK_OPPRETT_OPPGAVE = 'aia.bruk-opprett-oppgave',
}

export function prettyPrintFeatureToggle(toggle: FeatureToggles) {
Expand All @@ -27,21 +28,24 @@ export function prettyPrintFeatureToggle(toggle: FeatureToggles) {
return 'Bruk meldekort mikrofrontend';
case FeatureToggles.BRUK_REAKTIVERING_KNAPP:
return 'Bruk reaktivering knapp';
case FeatureToggles.BRUK_OPPRETT_OPPGAVE:
return 'Bruk opprett oppgave';
}
}

export interface FeautreToggleData {
export interface FeatureToggleData {
'veientilarbeid.vis-gjelder-fra-dato'?: boolean;
'aia.bruk-bekreft-reaktivering'?: boolean;
'aia.bruk-sprakvelger'?: boolean;
'aia.bruk-tabs-demo'?: boolean;
'aia.bruk-endring-av-situasjon'?: boolean;
'aia.bruk-meldekort-mikrofrontend'?: boolean;
'aia.bruk-reaktivering-knapp'?: boolean;
'aia.bruk-opprett-oppgave'?: boolean;
}

export interface State extends DataElement {
data: FeautreToggleData;
data: FeatureToggleData;
}

export const initialState: State = {
Expand All @@ -53,6 +57,7 @@ export const initialState: State = {
'aia.bruk-endring-av-situasjon': false,
'aia.bruk-meldekort-mikrofrontend': false,
'aia.bruk-reaktivering-knapp': false,
'aia.bruk-opprett-oppgave': false,
},
status: STATUS.NOT_STARTED,
};
Expand Down
7 changes: 6 additions & 1 deletion src/demo/setup-demo-mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
MOTESTOTTE_URL,
NESTE_MELDEKORT_URL,
OPPRETT_DIALOG_URL,
OPPRETT_OPPGAVE_URL,
PROFIL_URL,
REAKTIVERING_URL,
ULESTEDIALOGER_URL,
Expand Down Expand Up @@ -176,7 +177,7 @@ export const demo_handlers = [

rest.get(REAKTIVERING_URL, reaktiveringGetResolver),
rest.post(REAKTIVERING_URL, reaktiveringPostResolver),
rest.post(FULLFOER_REAKTIVERING_URL, async (req, res, ctx) => {
rest.post(FULLFOER_REAKTIVERING_URL, async (_req, res, ctx) => {
const delay = new Promise((resolve) =>
setTimeout(() => {
settArbeidssokerPeriode('aktiv');
Expand All @@ -187,6 +188,10 @@ export const demo_handlers = [
return res(ctx.status(204));
}),

rest.post(OPPRETT_OPPGAVE_URL, async (_req, res, ctx) => {
return res(ctx.status(201));
}),

rest.post('https://amplitude.nav.no/collect', (req, res, ctx) => {
return res(ctx.status(200));
}),
Expand Down
1 change: 1 addition & 0 deletions src/ducks/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export const AIA_BACKEND = aiaBackendUrl,
MELDEPLIKT_URL = `${AIA_BACKEND}/meldeplikt`,
ULESTEDIALOGER_URL = `${AIA_BACKEND}/dialog/antallUleste`,
OPPRETT_DIALOG_URL = `${AIA_BACKEND}/dialog`,
OPPRETT_OPPGAVE_URL = `${AIA_BACKEND}/oppgave`,
FEATURE_URL = `${AIA_BACKEND}/unleash`,
MOTESTOTTE_URL = `${AIA_BACKEND}/vedtakinfo/motestotte`,
DP_INNSYN_URL = `${AIA_BACKEND}/dagpenger`,
Expand Down
10 changes: 10 additions & 0 deletions src/komponenter/endre-situasjon/steg2.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ const OpplysningeneBrukesTil = () => {
);
};

function genererOppgaveBeskrivelse(valgtSituasjon: SituasjonSvar): string | undefined {
if (valgtSituasjon === PermittertSvar.KONKURS || valgtSituasjon === PermittertSvar.OPPSIGELSE) {
return 'oppgave beskrivelse'; // TODO: Skriv en ordentlig beskrivelse
}
return undefined;
}

function genererDialogTekst(
valgtSituasjon: SituasjonSvar,
opprinneligSituasjon: SituasjonSvar | undefined,
Expand Down Expand Up @@ -204,9 +211,12 @@ function useLagreEndringer(props: Steg2Props) {
tilleggsData,
);

const oppgaveBeskrivelse = genererOppgaveBeskrivelse(valgtSituasjon);

const payload = {
tekst,
overskrift,
oppgaveBeskrivelse,
venterPaaSvarFraNav,
oppdatering: {
dinSituasjon: {
Expand Down
6 changes: 3 additions & 3 deletions src/komponenter/hent-initial-data/amplitude-provider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import ukerFraDato from '@alheimsins/uker-fra-dato';
import { InnloggingsNiva, useAutentiseringData } from '../../contexts/autentisering';
import { DinSituasjonSvar, useBrukerregistreringData } from '../../contexts/brukerregistrering';
import { useBrukerinfoData } from '../../contexts/bruker-info';
import { FeautreToggleData, useFeatureToggleData } from '../../contexts/feature-toggles';
import { FeatureToggleData, useFeatureToggleData } from '../../contexts/feature-toggles';
import { useArbeidssokerPerioder, useUnderOppfolging } from '../../contexts/arbeidssoker';

import { OppfolgingContext } from '../../contexts/oppfolging';
Expand Down Expand Up @@ -63,7 +63,7 @@ export const initialAmplitudeData: AmplitudeData = {

const AmplitudeContext = createContext({
amplitudeData: initialAmplitudeData,
oppdaterAmplitudeData: (data: Partial<AmplitudeData>) => {},
oppdaterAmplitudeData: (_data: Partial<AmplitudeData>) => {},
});

function useAmplitudeData() {
Expand Down Expand Up @@ -99,7 +99,7 @@ const AmplitudeProvider = (props: { children: React.ReactNode }) => {
const formidlingsgruppeOrIngenVerdi = formidlingsgruppe || 'INGEN_VERDI';

const aktiveFeatureToggles = Object.keys(featuretoggleData).reduce((toggles, current) => {
if (featuretoggleData[current as keyof FeautreToggleData]) {
if (featuretoggleData[current as keyof FeatureToggleData]) {
toggles.push(current);
}
return toggles;
Expand Down
2 changes: 1 addition & 1 deletion src/lib/vis-automatisk-reaktiverings-kort.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { FeautreToggleData as FeatureToggleData, FeatureToggles } from '../contexts/feature-toggles';
import { FeatureToggleData as FeatureToggleData, FeatureToggles } from '../contexts/feature-toggles';

import { visAutomatiskReaktiveringsKort, ReaktiveringEllerNull } from './vis-automatisk-reaktiverings-kort';

Expand Down
4 changes: 2 additions & 2 deletions src/lib/vis-automatisk-reaktiverings-kort.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { FeautreToggleData as FeatureToggleData, FeatureToggles } from '../contexts/feature-toggles';
import { FeatureToggleData as FeatureToggleData, FeatureToggles } from '../contexts/feature-toggles';
import { Reaktivering } from '../contexts/reaktivering';

export type ReaktiveringEllerNull = Reaktivering | null;

function visAutomatiskReaktiveringsKort(
featureToggleData: FeatureToggleData,
reaktivering: ReaktiveringEllerNull
reaktivering: ReaktiveringEllerNull,
): boolean {
const harUbesvartReaktivering = (reaktivering && reaktivering.svar === null) || false;
const harAktivFeatureToggle = featureToggleData[FeatureToggles.BRUK_BEKREFT_REAKTIVERING] || false;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/vis-besvarelse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import * as Oppfolging from '../contexts/oppfolging';
import * as BrukerInfo from '../contexts/bruker-info';
import * as FeatureToggles from '../contexts/feature-toggles';
import { BesvarelseResponse } from '../contexts/besvarelse';
import { BeregnedePerioder } from '../lib/beregn-arbeidssokerperioder';
import { BeregnedePerioder } from './beregn-arbeidssokerperioder';
import sjekkOmBrukerErStandardInnsatsgruppe from './er-standard-innsatsgruppe';

const DATO_FOR_LANSERING = new Date('2023-02-01');
Expand All @@ -20,7 +20,7 @@ export function visBesvarelser({
brukerInfoData: BrukerInfo.Data;
oppfolgingData: Oppfolging.Data;
registreringData: Brukerregistrering.Data | null;
featuretoggleData: FeatureToggles.FeautreToggleData;
featuretoggleData: FeatureToggles.FeatureToggleData;
besvarelseData: BesvarelseResponse | null;
arbeidssokerPeriodeData: BeregnedePerioder;
}): boolean {
Expand Down
2 changes: 1 addition & 1 deletion src/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const Mikrofrontend = () => {
setArbeidssokerState,
ARBEIDSSOKER_NIVA3_URL,
);
fetchData<FeatureToggle.State, FeatureToggle.FeautreToggleData>(
fetchData<FeatureToggle.State, FeatureToggle.FeatureToggleData>(
featureToggleState,
setFeatureToggleState,
featureTogglesUrl,
Expand Down
12 changes: 6 additions & 6 deletions src/test/test-context-providers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export type ProviderProps = {
autentisering?: DeepPartial<Autentisering.Data>;
amplitude?: DeepPartial<AmplitudeData>;
brukerregistrering?: DeepPartial<Brukerregistrering.Data> | null;
featureToggle?: DeepPartial<FeatureToggle.FeautreToggleData>;
featureToggle?: DeepPartial<FeatureToggle.FeatureToggleData>;
oppfolging?: DeepPartial<Oppfolging.Data>;
ulesteDialoger?: DeepPartial<UlesteDialoger.Data>;
brukerInfo?: DeepPartial<BrukerInfo.Data>;
Expand Down Expand Up @@ -57,26 +57,26 @@ export const contextProviders = function (props: ProviderProps): React.FunctionC
? { data: null, status: STATUS.OK }
: merge(
Brukerregistrering.initialState,
props.brukerregistrering && { data: props.brukerregistrering }
props.brukerregistrering && { data: props.brukerregistrering },
)
}
>
<UlesteDialoger.UlesteDialogerContext.Provider
value={merge(
UlesteDialoger.initialState,
props.ulesteDialoger && { data: props.ulesteDialoger }
props.ulesteDialoger && { data: props.ulesteDialoger },
)}
>
<Oppfolging.OppfolgingContext.Provider
value={merge(
Oppfolging.initialState,
props.oppfolging && { data: props.oppfolging }
props.oppfolging && { data: props.oppfolging },
)}
>
<Motestotte.MotestotteContext.Provider
value={merge(
Motestotte.initialState,
props.motestotte && { data: props.motestotte }
props.motestotte && { data: props.motestotte },
)}
>
<Amplitude.AmplitudeContext.Provider
Expand All @@ -90,7 +90,7 @@ export const contextProviders = function (props: ProviderProps): React.FunctionC
FeatureToggle.initialState,
props.featureToggle && {
data: props.featureToggle,
}
},
)}
>
<ProfilContext.Provider
Expand Down

0 comments on commit 6d6dcd6

Please sign in to comment.