Skip to content

Commit ef4c0e7

Browse files
committed
Slett aktivBruker fra context når fnr fjernes
1 parent b8b2a07 commit ef4c0e7

File tree

3 files changed

+38
-14
lines changed

3 files changed

+38
-14
lines changed

packages/dev-server/index.ts

+26-14
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@ import { CustomServer } from './CustomServer';
33
import { BadRequestResponse } from './responses/BadRequestResponse';
44
import { InternalServerErrorResponse } from './responses/InternalServerErrorResponse';
55
import { SuccessResponse } from './responses/SuccessResponse';
6-
import { mockMe } from '../internarbeidsflate-decorator-v3/src/__mocks__/mock-handlers'
6+
import { mockMe } from '../internarbeidsflate-decorator-v3/src/__mocks__/mock-handlers';
77
import { NotFoundResponse } from './responses/NotFoundResponse';
88
import { BunServerWebsocket } from './types';
99

1010
type Metadata = { ident: string };
1111

1212
const serve = () => {
13-
type Context = { aktivEnhet: string | undefined; aktivBruker: string | undefined };
13+
type Context = {
14+
aktivEnhet: string | undefined;
15+
aktivBruker: string | undefined;
16+
};
1417
const context: Context = { aktivEnhet: '0118', aktivBruker: '10108000398' };
1518
const clients: Record<string, BunServerWebsocket> = {};
16-
const codeToFnr: Record<string, string> = {}
19+
const codeToFnr: Record<string, string> = {};
1720

1821
const app = new CustomServer();
1922

@@ -37,11 +40,11 @@ const serve = () => {
3740
});
3841

3942
app.get('/modiacontextholder/api/context/v2/aktivbruker', () => {
40-
return new SuccessResponse({aktivBruker: context.aktivBruker });
43+
return new SuccessResponse({ aktivBruker: context.aktivBruker });
4144
});
4245

4346
app.get('/modiacontextholder/api/context/v2/aktivenhet', () => {
44-
return new SuccessResponse({aktivEnhet: context.aktivEnhet });
47+
return new SuccessResponse({ aktivEnhet: context.aktivEnhet });
4548
});
4649

4750
app.get('/modiacontextholder/api/context/enhet/:enhetId', (request) => {
@@ -72,26 +75,33 @@ const serve = () => {
7275
await Bun.readableStreamToJSON(request.body);
7376

7477
if (eventType === 'NY_AKTIV_BRUKER') {
75-
context.aktivBruker = verdi
78+
context.aktivBruker = verdi;
7679
} else if (eventType === 'NY_AKTIV_ENHET') {
77-
context.aktivEnhet = verdi
80+
context.aktivEnhet = verdi;
7881
}
7982
broadCastToClients(eventType);
8083

81-
return new SuccessResponse({...context});
84+
return new SuccessResponse({ ...context });
85+
});
86+
87+
app.delete('/modiacontextholder/api/context/aktivbruker', () => {
88+
context.aktivBruker = undefined;
89+
return new SuccessResponse({ aktivBruker: context.aktivBruker });
8290
});
8391

8492
app.post('/modiacontextholder/api/fnr-code/retrieve', async (request) => {
8593
if (!request.body) {
8694
return new BadRequestResponse('No body provided');
8795
}
8896

89-
const { code }: { code: string } = await Bun.readableStreamToJSON(request.body);
97+
const { code }: { code: string } = await Bun.readableStreamToJSON(
98+
request.body,
99+
);
90100

91-
const fnr = codeToFnr[code]
101+
const fnr = codeToFnr[code];
92102

93103
if (!fnr) {
94-
return new NotFoundResponse()
104+
return new NotFoundResponse();
95105
}
96106

97107
return new SuccessResponse({ fnr, code });
@@ -102,11 +112,13 @@ const serve = () => {
102112
return new BadRequestResponse('No body provided');
103113
}
104114

105-
const { fnr }: { fnr: string } = await Bun.readableStreamToJSON(request.body);
115+
const { fnr }: { fnr: string } = await Bun.readableStreamToJSON(
116+
request.body,
117+
);
106118

107-
const code = crypto.randomUUID()
119+
const code = crypto.randomUUID();
108120

109-
codeToFnr[code] = fnr
121+
codeToFnr[code] = fnr;
110122

111123
return new SuccessResponse({ fnr, code });
112124
});

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

+2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ export class ContextHolderAPI extends ApiClient {
4646
});
4747
};
4848

49+
readonly clearFnr = () => this.delete<void>({ path: '/context/aktivbruker' });
50+
4951
readonly getVeilederDetails = (): Promise<FetchResponse<Veileder>> => {
5052
return this.get<Veileder>({ path: `/decorator` });
5153
};

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

+10
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,18 @@ export class FnrValueManager extends ContextValueManager {
118118

119119
readonly openFnrModal = () => this.openModal('fnr');
120120

121+
readonly clearFnrExternally = async () => {
122+
const res = await this.contextHolderApi.clearFnr();
123+
if (res.error) {
124+
this.#errorMessageManager.addErrorMessage(
125+
PredefiniertFeilmeldinger.OPPDATER_BRUKER_CONTEXT_FEILET,
126+
);
127+
}
128+
};
129+
121130
readonly clearFnr = () => {
122131
this.changeFnrLocally();
132+
this.clearFnrExternally();
123133
this.#propsUpdateHandler.clearOldValue('fnr');
124134
};
125135

0 commit comments

Comments
 (0)