Skip to content

Commit 519e273

Browse files
committed
ikke hente enheter i eget kall
1 parent b33a3fc commit 519e273

File tree

3 files changed

+31
-29
lines changed

3 files changed

+31
-29
lines changed

v3/packages/internarbeidsflate-decorator-v3/src/api/ContextHolderAPI.ts

-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { Enhet } from '../types/Enhet';
21
import { Veileder } from '../types/Veileder';
32
import { ApiClient, FetchResponse } from './ApiClient';
43

@@ -47,10 +46,6 @@ export class ContextHolderAPI extends ApiClient {
4746
});
4847
};
4948

50-
readonly getEnhet = (enhetId: string): Promise<FetchResponse<Enhet>> => {
51-
return this.get<Enhet>({ path: `/context/enhet/${enhetId}` });
52-
};
53-
5449
readonly getVeilederDetails = (): Promise<FetchResponse<Veileder>> => {
5550
return this.get<Veileder>({ path: `/decorator` });
5651
};

v3/packages/internarbeidsflate-decorator-v3/src/store/EnhetValueManager.ts

+31-23
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export class EnhetValueManager extends ContextValueManager {
3737
if (enhet && enhet === this.state.enhet.value) {
3838
return;
3939
}
40-
40+
4141
const enheter = veileder.enheter;
4242
if (!enheter?.length) {
4343
this.#resetFnrAndEnhetDueToNoLegalEnhet();
@@ -57,37 +57,35 @@ export class EnhetValueManager extends ContextValueManager {
5757
);
5858
};
5959

60-
readonly updateEnhetLocallyToMatchContextHolder = async (
61-
) => {
60+
readonly updateEnhetLocallyToMatchContextHolder = async () => {
6261
const enheter = this.state.veileder?.enheter;
6362
if (!enheter?.length) return;
6463

6564
const passendeEnhet = enheter[0];
6665

67-
const activeEnhet =
68-
await this.contextHolderApi.getVeiledersActiveEnhet();
66+
const activeEnhet = await this.contextHolderApi.getVeiledersActiveEnhet();
6967
if (activeEnhet.error || !activeEnhet.data) {
7068
this.#errorMessageManager.addErrorMessage(
7169
PredefiniertFeilmeldinger.HENT_ENHET_FEILET,
7270
);
73-
return this.changeEnhetLocallyAndExternally(passendeEnhet.enhetId);
71+
return this.changeEnhetLocallyAndExternally(enheter, passendeEnhet.enhetId);
7472
}
75-
return this.changeEnhetLocally(activeEnhet.data.aktivEnhet);
73+
return this.changeEnhetLocally(enheter, activeEnhet.data.aktivEnhet);
7674
};
7775

7876
readonly #updateEnhetExternallyToMatchRequestedEnhet = async (
7977
enheter: Enhet[],
8078
enhet: string,
8179
) => {
8280
if (!this.#haveLegalEnhet(enhet, enheter)) {
83-
return this.changeEnhetLocallyAndExternally(enheter[0].enhetId);
81+
return this.changeEnhetLocallyAndExternally(enheter, enheter[0].enhetId);
8482
}
85-
return this.changeEnhetLocallyAndExternally(enhet);
83+
return this.changeEnhetLocallyAndExternally(enheter, enhet);
8684
};
8785

8886
readonly #resetFnrAndEnhetDueToNoLegalEnhet = async () => {
8987
await this.#fnrValueManager.changeFnrLocallyAndExternally();
90-
await this.changeEnhetLocallyAndExternally();
88+
await this.changeEnhetLocallyAndExternally([]);
9189
this.#errorMessageManager.addErrorMessage(
9290
PredefiniertFeilmeldinger.INGEN_GYLDIG_ENHET,
9391
);
@@ -108,20 +106,31 @@ export class EnhetValueManager extends ContextValueManager {
108106
readonly openEnhetModal = () => this.openModal('enhet');
109107

110108
readonly changeEnhetLocallyToWsRequestedValue = () => {
111-
this.changeEnhetLocally(this.state.enhet.wsRequestedValue);
109+
if (!this.state.veileder?.enheter) {
110+
this.#errorMessageManager.addErrorMessage(PredefiniertFeilmeldinger.WS_ERROR)
111+
return
112+
}
113+
114+
this.changeEnhetLocally(this.state.veileder.enheter, this.state.enhet.wsRequestedValue);
112115
this.closeModal('enhet');
113116
};
114117

115-
readonly changeEnhetLocally = async (newEnhetId?: string | null) => {
116-
if (!newEnhetId) {
118+
readonly changeEnhetLocally = async (
119+
veiledersEnheter: Enhet[],
120+
newEnhetId?: string | null,
121+
) => {
122+
if (!newEnhetId || !veiledersEnheter.length) {
117123
const enhet = this.#updateEnhet(undefined);
118124
this.setState({ enhet });
119125
if (this.#onEnhetChanged) this.#onEnhetChanged(newEnhetId);
120126
return;
121127
}
122128

123-
const enhetResponse = await this.contextHolderApi.getEnhet(newEnhetId);
124-
if (enhetResponse.error) {
129+
const matchendeEnhet = veiledersEnheter.find(
130+
(enhet) => enhet.enhetId === newEnhetId,
131+
);
132+
133+
if (!matchendeEnhet) {
125134
this.#errorMessageManager.addErrorMessage(
126135
PredefiniertFeilmeldinger.HENT_ENHET_FEILET,
127136
);
@@ -130,15 +139,14 @@ export class EnhetValueManager extends ContextValueManager {
130139
if (this.#onEnhetChanged) this.#onEnhetChanged(null);
131140
return;
132141
}
133-
if (!enhetResponse.error && enhetResponse.data) {
134-
const enhet = this.#updateEnhet(enhetResponse.data);
135-
this.setState({ enhet });
136-
if (this.#onEnhetChanged) this.#onEnhetChanged(newEnhetId);
137-
}
142+
143+
const enhet = this.#updateEnhet(matchendeEnhet);
144+
this.setState({ enhet });
145+
if (this.#onEnhetChanged) this.#onEnhetChanged(newEnhetId);
138146
};
139147

140-
readonly changeEnhetLocallyAndExternally = async (newEnhetId?: string) => {
141-
await this.changeEnhetLocally(newEnhetId);
148+
readonly changeEnhetLocallyAndExternally = async (enheter: Enhet[], newEnhetId?: string) => {
149+
await this.changeEnhetLocally(enheter, newEnhetId);
142150
this.contextHolderApi.changeEnhet(newEnhetId);
143151
};
144152

@@ -149,7 +157,7 @@ export class EnhetValueManager extends ContextValueManager {
149157
};
150158

151159
readonly clearEnhet = () => {
152-
this.changeEnhetLocally();
160+
this.changeEnhetLocally([]);
153161
};
154162

155163
#haveLegalEnhet = (requestedEnhet: string, enheter: Enhet[]) =>

v3/packages/internarbeidsflate-decorator-v3/src/store/StoreHandler.ts

-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ export default new StoreHandler();
103103
export interface State {
104104
fnr: ContextValue<string>;
105105
enhet: ContextValue<Enhet>;
106-
enheter?: Enhet[];
107106
veileder?: Veileder | undefined;
108107
errorMessages: Record<string, ErrorMessage>;
109108
}

0 commit comments

Comments
 (0)