Skip to content

Commit

Permalink
👽 Flytter send ettersendelse endepunkt til app-router (#454)
Browse files Browse the repository at this point in the history
  • Loading branch information
mrbjoern authored Jan 15, 2025
1 parent 0a523f8 commit 6f00c73
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 35 deletions.
Original file line number Diff line number Diff line change
@@ -1,45 +1,27 @@
import { beskyttetApi, isMock, logError } from '@navikt/aap-felles-utils';
import { IncomingMessage } from 'http';
import { simpleTokenXProxy } from 'lib/api/simpleTokenXProxy';
import { logError } from '@navikt/aap-felles-utils';
import { sendEttersendelse } from 'lib/services/innsendingService';
import { Ettersendelse, InnsendingBackendState, VedleggType } from 'lib/types/types';
import { NextRequest } from 'next/server';

const handler = beskyttetApi(async (req, res) => {
const { ettersendteVedlegg, søknadId }: Ettersendelse = JSON.parse(req.body);
export async function POST(req: NextRequest) {
const body = await req.json();
const { ettersendteVedlegg, søknadId }: Ettersendelse = body;

const ettersending = ettersendteVedlegg[0];
const body: InnsendingBackendState = {
const requestBody: InnsendingBackendState = {
filer: ettersending.ettersending.map((ettersendtVedlegg) => ({
id: ettersendtVedlegg,
tittel: mapVedleggTypeTilVedleggstekst(ettersending.vedleggType),
})),
};
await sendEttersendelseInnsending(body, søknadId, req);

res.status(201).json({});
});

export const sendEttersendelseInnsending = async (
data: InnsendingBackendState,
innsendingsId?: string,
req?: IncomingMessage
) => {
if (isMock()) {
return {};
}
try {
const ettersendelse = await simpleTokenXProxy({
url: `${process.env.INNSENDING_URL}/innsending${innsendingsId ? `/${innsendingsId}` : ''}`,
audience: process.env.INNSENDING_AUDIENCE!,
method: 'POST',
req,
body: data,
});
return ettersendelse;
await sendEttersendelse(requestBody, søknadId);
return new Response(null, { status: 201 });
} catch (error) {
logError('Error sending ettersendelse', error);
throw new Error('Error sending ettersendelse');
return new Response('Error sending ettersendelse', { status: 500 });
}
};
}

function mapVedleggTypeTilVedleggstekst(vedleggType: VedleggType): string {
switch (vedleggType) {
Expand All @@ -59,5 +41,3 @@ function mapVedleggTypeTilVedleggstekst(vedleggType: VedleggType): string {
return vedleggType;
}
}

export default handler;
6 changes: 3 additions & 3 deletions lib/services/fetchProxy.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use server';

import { requestAzureOboToken, validateToken } from '@navikt/oasis';
import { requestOboToken, validateToken } from '@navikt/oasis';
import { getAccessTokenOrRedirectToLogin, logError } from '@navikt/aap-felles-utils';
import { headers } from 'next/headers';

Expand All @@ -19,10 +19,10 @@ const getOnBefalfOfToken = async (audience: string, url: string): Promise<string
throw new Error('Token for simpleTokenXProxy didnt validate');
}

const onBehalfOf = await requestAzureOboToken(token, audience);
const onBehalfOf = await requestOboToken(token, audience);
if (!onBehalfOf.ok) {
logError(`Henting av oboToken for ${url} feilet`, onBehalfOf.error);
throw new Error('Request oboToken for simpleTokenXProxy failed');
throw new Error('Request oboToken for fetchProxy failed');
}

return onBehalfOf.token;
Expand Down
17 changes: 16 additions & 1 deletion lib/services/innsendingService.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'server-only';

import { fetchProxy } from 'lib/services/fetchProxy';
import { MineAapSoknadMedEttersendingNy } from 'lib/types/types';
import { InnsendingBackendState, MineAapSoknadMedEttersendingNy } from 'lib/types/types';
import { isMock } from 'lib/utils/environments';
import { mockSøknerMedEttersending } from 'lib/mock/mockSoknad';
import { isAfter } from 'date-fns';
Expand All @@ -23,3 +23,18 @@ export const hentSøknader = async (): Promise<MineAapSoknadMedEttersendingNy[]>
return [];
}
};

export const sendEttersendelse = async (data: InnsendingBackendState, innsendingsId?: string): Promise<any> => {
if (isMock()) {
return {};
}
const erGenerellEttersendelse = innsendingsId ? true : false;
const url = `${innsendingApiBaseUrl}/innsending${erGenerellEttersendelse ? `/${innsendingsId}` : ''}`;
try {
const ettersendelse = await fetchProxy(url, innsendingAudience, 'POST', data);
return ettersendelse;
} catch (error) {
logError('Error sending ettersendelse', error);
throw new Error('Error sending ettersendelse');
}
};

0 comments on commit 6f00c73

Please sign in to comment.