Skip to content

Commit

Permalink
Merge pull request #1283 from navikt/historikk
Browse files Browse the repository at this point in the history
Historikk fra graphql instedetfor å sette sammen i frontend
  • Loading branch information
johatr committed Aug 6, 2024
2 parents 0be04b7 + aa3e64d commit ebaa2c8
Show file tree
Hide file tree
Showing 27 changed files with 524 additions and 574 deletions.
284 changes: 168 additions & 116 deletions src/api/aktivitetsplanGraphql.ts
Original file line number Diff line number Diff line change
@@ -1,140 +1,172 @@
import { DEFAULT_CONFIG, sjekkStatuskode, toJson } from './utils';
import { AKTIVITET_GRAPHQL_BASE_URL } from '../environment';
import { hentFraLocalStorage, hentFraSessionStorage, LocalStorageElement } from '../mocks/demo/localStorage';
import { hentFraSessionStorage, LocalStorageElement } from '../mocks/demo/localStorage';
import { VeilarbAktivitet } from '../datatypes/internAktivitetTypes';
import { GraphqlResponse, sjekkGraphqlFeil } from './graphql/graphqlResult';
import { Historikk } from '../datatypes/Historikk';

const allAktivitetFields = `
id,
funksjonellId,
versjon,
tittel,
beskrivelse,
lenke,
type,
status,
fraDato,
tilDato,
opprettetDato,
endretDato,
endretAv,
historisk,
avsluttetKommentar,
avtalt,
forhaandsorientering {
id,
type,
tekst,
lestDato,
}
endretAvType,
transaksjonsType,
malid,
oppfolgingsperiodeId,
# stillingaktivitet
etikett,
kontaktperson,
arbeidsgiver,
arbeidssted,
stillingsTittel,
# // egenaktivitet
hensikt,
oppfolging,
# //sokeAvtaleAktivitet
antallStillingerSokes,
antallStillingerIUken,
avtaleOppfolging,
# //iJobbAktivitet
jobbStatus,
ansettelsesforhold,
arbeidstid,
# //behandlingAktivitet
behandlingType,
behandlingSted,
effekt,
behandlingOppfolging,
# //møte
adresse,
forberedelser,
kanal,
referat,
erReferatPublisert,
stillingFraNavData {
cvKanDelesData {
kanDeles,
endretTidspunkt,
endretAv,
endretAvType,
avtaltDato,
}
soknadsfrist,
svarfrist,
arbeidsgiver,
bestillingsId,
stillingsId,
arbeidssted,
kontaktpersonData {
navn,
tittel,
mobil,
}
soknadsstatus,
livslopsStatus,
varselId,
detaljer,
}
eksternAktivitet {
type,
oppgave {
ekstern {
subtekst,
tekst,
url
}
intern {
subtekst,
tekst,
url
}
}
handlinger {
url,
tekst,
subtekst,
lenkeType
}
detaljer {
label,
verdi
}
etiketter {
tekst,
kode,
sentiment
}
}
`;

const query: string = `
query($fnr: String!) {
perioder(fnr: $fnr) {
id,
aktiviteter {
id,
funksjonellId,
versjon,
tittel,
beskrivelse,
lenke,
type,
status,
fraDato,
tilDato,
opprettetDato,
endretDato,
endretAv,
historisk,
avsluttetKommentar,
avtalt,
forhaandsorientering {
id,
type,
tekst,
lestDato,
}
endretAvType,
transaksjonsType,
malid,
oppfolgingsperiodeId,
# stillingaktivitet
etikett,
kontaktperson,
arbeidsgiver,
arbeidssted,
stillingsTittel,
# // egenaktivitet
hensikt,
oppfolging,
# //sokeAvtaleAktivitet
antallStillingerSokes,
antallStillingerIUken,
avtaleOppfolging,
# //iJobbAktivitet
jobbStatus,
ansettelsesforhold,
arbeidstid,
# //behandlingAktivitet
behandlingType,
behandlingSted,
effekt,
behandlingOppfolging,
# //møte
adresse,
forberedelser,
kanal,
referat,
erReferatPublisert,
stillingFraNavData {
cvKanDelesData {
kanDeles,
endretTidspunkt,
endretAv,
endretAvType,
avtaltDato,
}
soknadsfrist,
svarfrist,
arbeidsgiver,
bestillingsId,
stillingsId,
arbeidssted,
kontaktpersonData {
navn,
tittel,
mobil,
}
soknadsstatus,
livslopsStatus,
varselId,
detaljer,
}
${allAktivitetFields}
},
}
}
`;

eksternAktivitet {
type,
oppgave {
ekstern {
subtekst,
tekst,
url
}
intern {
subtekst,
tekst,
url
}
}
handlinger {
url,
tekst,
subtekst,
lenkeType
}
detaljer {
label,
verdi
}
etiketter {
tekst,
kode,
sentiment
}
const aktivitetMedHistorikkQuery = `
query($aktivitetId: String!) {
aktivitet(aktivitetId: $aktivitetId) {
${allAktivitetFields}
historikk {
endringer {
endretAvType,
endretAv,
tidspunkt,
beskrivelseForVeileder,
beskrivelseForBruker,
}
},
}
}
}
`;

const queryBody = (fnr: string) => ({
query,
variables: {
fnr,
},
});

const aktivitetMedHistorikkQueryBody = (aktivitetId: string) => ({
query: aktivitetMedHistorikkQuery,
variables: {
aktivitetId,
},
});

interface OppfolgingsPerioder {
id: string;
aktiviteter: VeilarbAktivitet[];
Expand All @@ -157,3 +189,23 @@ export const hentAktiviteterGraphql = async (): Promise<AktivitetsplanResponse>
.then(toJson)
.then(sjekkGraphqlFeil<{ perioder: OppfolgingsPerioder[] }>);
};

export const hentAktivitetMedHistorikkGraphql = (aktivitetId: string) => {
return fetch(AKTIVITET_GRAPHQL_BASE_URL, {
...DEFAULT_CONFIG,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Nav-Consumer-Id': 'aktivitetsplan',
},
body: JSON.stringify(aktivitetMedHistorikkQueryBody(aktivitetId)),
})
.then(sjekkStatuskode)
.then(toJson)
.then(
sjekkGraphqlFeil<{
aktivitet: VeilarbAktivitet & { historikk: Historikk; id: string; oppfolgingsperiodeId: string };
}>,
)
.then((it) => ({ ...it, data: { aktivitet: { ...it.data.aktivitet, id: aktivitetId } } }));
};
11 changes: 11 additions & 0 deletions src/datatypes/Historikk.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export interface Endring {
endretAvType: string;
endretAv: string;
tidspunkt: string;
beskrivelseForVeileder: string;
beskrivelseForBruker: string;
}

export interface Historikk {
endringer: Endring[];
}
4 changes: 3 additions & 1 deletion src/felles-komponenter/utils/logging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { Lest } from '../../datatypes/lestTypes';
import { Oppfolgingsperiode } from '../../datatypes/oppfolgingTypes';
import { AKTIVITET_BASE_URL } from '../../environment';
import { hash } from './hash';
import { Env, getEnv } from '../../sentry';

interface FrontendEvent {
name: string;
Expand All @@ -12,6 +13,7 @@ interface FrontendEvent {
}

export default function loggEvent(eventNavn: string, feltObjekt?: object, tagObjekt?: object) {
if (getEnv() == Env.Local) return;
const event: FrontendEvent = { name: eventNavn, fields: feltObjekt, tags: tagObjekt };
const url = `${AKTIVITET_BASE_URL}/logger/event`;
const config = {
Expand Down Expand Up @@ -129,7 +131,7 @@ export function loggForhandsorientering(
erManuellKrrKvpBruker: boolean,
mindreEnSyvDagerIgen: boolean,
forhandsorienteringType: string,
aktivitettype: AktivitetType
aktivitettype: AktivitetType,
) {
if (erManuellKrrKvpBruker) {
return loggEvent(FORHANDSORIENTERING_LOGGEVENT, {
Expand Down
6 changes: 2 additions & 4 deletions src/hovedside/Hovedside.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,12 @@ import { handlers } from '../mocks/handlers';
import { getErrorText } from '../moduler/feilmelding/Feilmelding';
import { hentArenaAktiviteter } from '../moduler/aktivitet/arena-aktiviteter-slice';
import { Status } from '../createGenericSlice';
import { oppfolgingsdperiodeAdapter } from '../moduler/aktivitet/aktivitet-slice';

const initialState = {
data: {
...emptyLoadedVeilederState.data,
aktiviteter: {
status: Status.NOT_STARTED,
data: [],
},
aktiviteter: oppfolgingsdperiodeAdapter.getInitialState({ status: Status.NOT_STARTED }),
arenaAktiviteter: {
status: Status.NOT_STARTED,
data: [],
Expand Down
Loading

0 comments on commit ebaa2c8

Please sign in to comment.