@@ -2,72 +2,18 @@ import type { NextApiRequest, NextApiResponse } from 'next';
2
2
import { createChildLogger } from '@navikt/next-logger' ;
3
3
import { withAuthenticatedApi } from '../../auth/withAuthentication' ;
4
4
import { getXRequestId } from '../../utils/apiUtils' ;
5
- import { getAppSanityClient } from '@navikt/appstatus-react-ds/src/utils/sanityClient' ;
6
- import { SanityConfig } from '@navikt/appstatus-react-ds' ;
5
+ import { SanityConfig , fetchStatus } from '@navikt/appstatus-react-ds' ;
7
6
import { browserEnv } from '../../utils/env' ;
8
7
import { APPLICATION_KEY } from '../_app.page' ;
9
- import { ApplicationStatus , Status } from '@navikt/appstatus-react-ds/src/types' ;
10
- import { SanityStatusMessage } from '@navikt/appstatus-react-ds/src/types/sanityObjects' ;
11
- import { getStateForApplication } from '@navikt/appstatus-react-ds/src/hooks/useAppStatus' ;
8
+ import { ApplicationState } from '@navikt/appstatus-react-ds/src/hooks/useGetApplicationStatus' ;
12
9
13
10
const sanityConfig : SanityConfig = {
14
11
projectId : browserEnv . NEXT_PUBLIC_APPSTATUS_PROJECT_ID ,
15
12
dataset : browserEnv . NEXT_PUBLIC_APPSTATUS_DATASET ,
16
13
} ;
17
14
18
- const getApplicationDocumentStatusQuery = ( key : string , team ?: string ) : string => {
19
- const teamQuery = team ? `team->.key == "${ team } "` : '' ;
20
- return `*[_type == 'application' && key == "${ key } "${ teamQuery } ]{
21
- key,
22
- applicationStatus,
23
- message,
24
- liveUpdate,
25
- name,
26
- team->{key}
27
- }` ;
28
- } ;
29
-
30
- const getTeamStatusQuery = ( key : string ) : string => {
31
- return `*[_type == 'team' && key == "${ key } "]{
32
- key,
33
- teamApplicationStatus,
34
- liveUpdate,
35
- message,
36
- }` ;
37
- } ;
38
-
39
- export interface ApplicationState {
40
- status : ApplicationStatus ;
41
- message ?: SanityStatusMessage ;
42
- }
43
-
44
- export const defaultAppStatus : ApplicationState = { status : Status . normal } ;
45
-
46
15
export const fetchAppStatus = async ( ) : Promise < ApplicationState > => {
47
- const client = getAppSanityClient ( sanityConfig ) ;
48
- try {
49
- const [ appResult , teamResult ] = await Promise . allSettled ( [
50
- client . fetch ( getApplicationDocumentStatusQuery ( APPLICATION_KEY ) ) ,
51
- client . fetch ( getTeamStatusQuery ( APPLICATION_KEY ) ) ,
52
- ] ) ;
53
-
54
- const app = appResult . status === 'fulfilled' && appResult . value . length === 1 ? appResult . value [ 0 ] : undefined ;
55
- const team =
56
- teamResult . status === 'fulfilled' && teamResult . value . length === 1 ? teamResult . value [ 0 ] : undefined ;
57
-
58
- if ( ! app ) {
59
- return defaultAppStatus ;
60
- }
61
-
62
- return getStateForApplication (
63
- app . applicationStatus . status ,
64
- app . message ? app . message [ 0 ] : undefined ,
65
- team ?. teamApplicationStatus . status ,
66
- team ?. message ? team . message [ 0 ] : undefined ,
67
- ) ;
68
- } catch {
69
- return Promise . resolve ( defaultAppStatus ) ;
70
- }
16
+ return await fetchStatus ( APPLICATION_KEY , sanityConfig ) ;
71
17
} ;
72
18
73
19
async function handler ( req : NextApiRequest , res : NextApiResponse ) {
0 commit comments