Skip to content

Commit

Permalink
* Hent spørreundersøkelse med innhold
Browse files Browse the repository at this point in the history
* Refaktorer type

Co-authored-by: Christian Klem <[email protected]>
Co-authored-by: Thomas Dufourd <[email protected]>
Co-authored-by: Sverre Stensby <[email protected]>
  • Loading branch information
4 people committed Dec 3, 2024
1 parent 4eba05b commit de0b561
Show file tree
Hide file tree
Showing 8 changed files with 116 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export const BehovsvurderingFane = ({
samarbeid={gjeldendeSamarbeid}
/>
<SpørreundersøkelseHjelpetekst
type="behovsvurdering"
type="Behovsvurdering"
brukerErEierAvSak={brukerErEierAvSak}
sakErIRettStatus={sakErIRettStatus}
/>
Expand All @@ -47,7 +47,7 @@ export const BehovsvurderingFane = ({
samarbeid={gjeldendeSamarbeid || alleSamarbeid[0]}
/>
<SpørreundersøkelseHjelpetekst
type="behovsvurdering"
type="Behovsvurdering"
brukerErEierAvSak={brukerErEierAvSak}
sakErIRettStatus={sakErIRettStatus}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,15 @@ export const EvalueringCardHeaderInnhold = ({
"Evaluering",
);

/*const { data: spørreundersøkelseForhåndsvisning } =
useHentSpørreundersøkelseForhåndsvisning(
iaSak.orgnr,
iaSak.saksnummer,
samarbeid.id,
"Evaluering",
spørreundersøkelse.id,
);*/

const { mutate: oppdaterSaksStatus } = useHentIASaksStatus(
iaSak.orgnr,
iaSak.saksnummer,
Expand Down Expand Up @@ -196,6 +205,16 @@ export const EvalueringCardHeaderInnhold = ({
>
Start
</StyledActionButton>
{/*<StyledActionButton
variant="secondary"
onClick={() =>
console.log(
spørreundersøkelseForhåndsvisning,
)
}
>
Forhåndsvis
</StyledActionButton>*/}
{brukerErEierAvSak && (
<StyledActionButton
variant="tertiary"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@ function NyEvalueringFane({
iaSak.orgnr,
iaSak.saksnummer,
);
const { data: samarbeidsplan } = useHentPlan(iaSak.orgnr, iaSak.saksnummer, gjeldendeSamarbeid.id);
const { data: samarbeidsplan } = useHentPlan(
iaSak.orgnr,
iaSak.saksnummer,
gjeldendeSamarbeid.id,
);
const { data: brukerInformasjon } = useHentBrukerinformasjon();
const brukerErEierAvSak = iaSak.eidAv === brukerInformasjon?.ident;

Expand All @@ -61,7 +65,7 @@ function NyEvalueringFane({
samarbeid={gjeldendeSamarbeid}
/>
<SpørreundersøkelseHjelpetekst
type="evaluering"
type="Evaluering"
brukerErEierAvSak={brukerErEierAvSak}
sakErIRettStatus={sakErIRettStatus}
/>
Expand All @@ -76,7 +80,7 @@ function NyEvalueringFane({
samarbeid={gjeldendeSamarbeid || alleSamarbeid[0]}
/>
<SpørreundersøkelseHjelpetekst
type="evaluering"
type="Evaluering"
brukerErEierAvSak={brukerErEierAvSak}
sakErIRettStatus={sakErIRettStatus}
harPlan={samarbeidsplan !== undefined}
Expand Down
22 changes: 20 additions & 2 deletions client/src/api/lydia-api/spørreundersøkelse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ import {
} from "../../domenetyper/iaSakProsess";
import { iaSakPath, spørreundersøkelsePath } from "./paths";
import { httpDelete, post, put, useSwrTemplate } from "./networkRequests";
import {
SpørreundersøkelseMedInnhold,
SpørreundersøkelseMedInnholdSchema,
SpørreundersøkelseType,
} from "../../domenetyper/spørreundersøkelseMedInnhold";

export const useHentResultat = (
orgnummer: string,
Expand Down Expand Up @@ -75,7 +80,7 @@ export const useHentSpørreundersøkelser = (
orgnummer: string,
saksnummer: string,
prosessId: number,
type: "Evaluering" | "Behovsvurdering",
type: SpørreundersøkelseType,
) => {
return useSwrTemplate<Spørreundersøkelse[]>(
`${spørreundersøkelsePath}/${orgnummer}/${saksnummer}/prosess/${prosessId}/type/${type}`,
Expand All @@ -86,11 +91,24 @@ export const useHentSpørreundersøkelser = (
},
);
};
export const useHentSpørreundersøkelseForhåndsvisning = (
orgnummer: string,
saksnummer: string,
prosessId: number,
type: SpørreundersøkelseType,
spørreundersøkelseId: string,
) => {
return useSwrTemplate<SpørreundersøkelseMedInnhold>(
`${spørreundersøkelsePath}/${orgnummer}/${saksnummer}/prosess/${prosessId}/type/${type}/${spørreundersøkelseId}`,
SpørreundersøkelseMedInnholdSchema,
);
};

export const opprettSpørreundersøkelse = (
orgnummer: string,
saksnummer: string,
samarbeidsId: number,
type: "Evaluering" | "Behovsvurdering",
type: SpørreundersøkelseType,
): Promise<Spørreundersøkelse> => {
return post(
`${spørreundersøkelsePath}/${orgnummer}/${saksnummer}/prosess/${samarbeidsId}/type/${type}`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { BehovsvurderingCardHeaderInnhold } from "../../Pages/Virksomhet/Kartleg
import { BehovsvurderingRadInnhold } from "../../Pages/Virksomhet/Kartlegging/BehovsvurderingRadInnhold";
import { EvalueringCardHeaderInnhold } from "../../Pages/Virksomhet/Samarbeid/Evaluering/EvalueringCardHeaderInnhold";
import { EvalueringRadInnhold } from "../../Pages/Virksomhet/Samarbeid/Evaluering/EvalueringRadInnhold";
import { SpørreundersøkelseType } from "../../domenetyper/spørreundersøkelseMedInnhold";

interface SpørreundersøkelseProviderProps {
spørreundersøkelseliste: Spørreundersøkelse[];
Expand All @@ -14,7 +15,7 @@ interface SpørreundersøkelseProviderProps {
brukerRolle: "Superbruker" | "Saksbehandler" | "Lesetilgang" | undefined;
brukerErEierAvSak: boolean;
sisteOpprettedeSpørreundersøkelseId: string;
spørreundersøkelseType: "Behovsvurdering" | "Evaluering";
spørreundersøkelseType: SpørreundersøkelseType;
}
export interface CardHeaderProps {
spørreundersøkelse: Spørreundersøkelse;
Expand All @@ -31,13 +32,10 @@ interface SpørreundersøkelseContextState {
};
}


function getComponents(
spørreundersøkelseType: "Behovsvurdering" | "Evaluering",
): ({
function getComponents(spørreundersøkelseType: SpørreundersøkelseType): {
CardHeader: React.FC<CardHeaderProps>;
CardInnhold: React.FC<CardInnholdProps>;
}) {
} {
switch (spørreundersøkelseType) {
case "Behovsvurdering":
return {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
import { Heading, HStack, Tag } from "@navikt/ds-react";
import { defaultNavnHvisTomt, IaSakProsess } from "../../domenetyper/iaSakProsess";
import {
defaultNavnHvisTomt,
IaSakProsess,
} from "../../domenetyper/iaSakProsess";
import { SpørreundersøkelseType } from "../../domenetyper/spørreundersøkelseMedInnhold";

export const SpørreundersøkelseHeading = ({
samarbeid,
type,
}: {
samarbeid: IaSakProsess;
type: "Evaluering" | "Behovsvurdering";
type: SpørreundersøkelseType;
}) => {
return (
<HStack align={"center"} justify={"space-between"}>
<HStack align={"center"} gap={"8"}>
<Heading level="2" size="medium" style={{ width: type === "Behovsvurdering" ? "11rem" : "6rem" }}>
<Heading
level="2"
size="medium"
style={{
width: type === "Behovsvurdering" ? "11rem" : "6rem",
}}
>
{type}
</Heading>
{samarbeid && (
Expand All @@ -22,4 +32,4 @@ export const SpørreundersøkelseHeading = ({
</HStack>
</HStack>
);
}
};
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { BodyShort } from "@navikt/ds-react";
import { SpørreundersøkelseType } from "../../domenetyper/spørreundersøkelseMedInnhold";

export const SpørreundersøkelseHjelpetekst = ({
brukerErEierAvSak,
Expand All @@ -8,7 +9,7 @@ export const SpørreundersøkelseHjelpetekst = ({
}: {
brukerErEierAvSak: boolean;
sakErIRettStatus: boolean;
type: "evaluering" | "behovsvurdering";
type: SpørreundersøkelseType;
harPlan?: boolean;
}) => {
if (!brukerErEierAvSak && !sakErIRettStatus) {
Expand All @@ -17,22 +18,22 @@ export const SpørreundersøkelseHjelpetekst = ({
<br />
<BodyShort>
Du må være eier av saken og være i status <i>Kartlegges</i>{" "}
eller <i>Vi bistår</i>{" "}for å opprette ny {type}
eller <i>Vi bistår</i> for å opprette ny {type}
</BodyShort>
</>
);
} else if (!sakErIRettStatus) {
if (type === "evaluering") {
if (type === "Evaluering") {
return (
<>
<br />
<BodyShort>
Status må være i <i>Vi bistår</i>{" "}
for å kunne opprette en {type}
Status må være i <i>Vi bistår</i> for å kunne opprette
en {type}
</BodyShort>
</>
);
} else if (type === "behovsvurdering") {
} else if (type === "Behovsvurdering") {
return (
<>
<br />
Expand All @@ -52,7 +53,7 @@ export const SpørreundersøkelseHjelpetekst = ({
</BodyShort>
</>
);
} else if (type === "evaluering" && !harPlan) {
} else if (type === "Evaluering" && !harPlan) {
return (
<>
<br />
Expand Down
42 changes: 42 additions & 0 deletions client/src/domenetyper/spørreundersøkelseMedInnhold.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { z } from "zod";
import { datoSchema, spørreundersøkelseStatusEnum } from "./domenetyper";

const SPØRREUNDERSØKELSE_TYPE = ["Behovsvurdering", "Evaluering"] as const;
export const SpørreundersøkelseTypeEnum = z.enum(SPØRREUNDERSØKELSE_TYPE);
export type SpørreundersøkelseType = z.infer<typeof SpørreundersøkelseTypeEnum>;

export const SvaralternativSchema = z.object({
svarId: z.string(),
svartekst: z.string(),
});

export const SpørsmålSchema = z.object({
id: z.string(),
undertemanavn: z.string(),
spørsmål: z.string(),
svaralternativer: z.array(SvaralternativSchema),
flervalg: z.boolean(),
});

export const TemaSchema = z.object({
temaId: z.number(),
navn: z.string(),
spørsmålOgSvaralternativer: z.array(SpørsmålSchema),
});

export const SpørreundersøkelseMedInnholdSchema = z.object({
id: z.string(),
samarbeidId: z.number(),
status: spørreundersøkelseStatusEnum,
temaer: z.array(TemaSchema),
opprettetAv: z.string(),
type: SpørreundersøkelseTypeEnum,
opprettetTidspunkt: datoSchema,
endretTidspunkt: datoSchema.nullable(),
påbegyntTidspunkt: datoSchema.nullable(),
fullførtTidspunkt: datoSchema.nullable(),
});

export type SpørreundersøkelseMedInnhold = z.infer<
typeof SpørreundersøkelseMedInnholdSchema
>;

0 comments on commit de0b561

Please sign in to comment.