Skip to content
This repository was archived by the owner on Nov 1, 2024. It is now read-only.

Commit 7054377

Browse files
committed
access requests requery updated
1 parent 772fc80 commit 7054377

File tree

9 files changed

+44
-285
lines changed

9 files changed

+44
-285
lines changed

components/dataproducts/access/datasetAccess.tsx

+7-23
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { useState } from 'react'
33
import { isAfter, parseISO, format } from 'date-fns'
44
import {
55
useRevokeAccessMutation,
6-
useAccessRequestsForDatasetQuery,
76
useApproveAccessRequestMutation,
87
useDenyAccessRequestMutation,
98
} from '../../../lib/schema/graphql'
@@ -17,10 +16,10 @@ import {
1716
Textarea,
1817
} from '@navikt/ds-react'
1918
import { ExternalLink } from '@navikt/ds-icons'
20-
import { GET_ACCESS_REQUESTS_FOR_DATASET } from '../../../lib/queries/accessRequest/accessRequestsForDataset'
2119
import { nb } from 'date-fns/locale'
2220
import ErrorMessage from '../../lib/error'
2321
import { useGetDataset } from '../../../lib/rest/dataproducts'
22+
import { useFetchAccessRequestsForDataset } from '../../../lib/rest/access'
2423

2524
interface AccessEntry {
2625
subject: string
@@ -238,23 +237,20 @@ const DatasetAccess = ({ id }: AccessListProps) => {
238237
const [revokeAccess] = useRevokeAccessMutation()
239238
const [approveAccessRequest] = useApproveAccessRequestMutation()
240239
const [denyAccessRequest] = useDenyAccessRequestMutation()
241-
const datasetAccessRequestsQuery = useAccessRequestsForDatasetQuery({
242-
variables: { datasetID: id },
243-
ssr: true,
244-
})
240+
const fetchAccessRequestsForDataset = useFetchAccessRequestsForDataset(id)
245241

246242
const getDataset = useGetDataset(id)
247243

248-
if (datasetAccessRequestsQuery.error)
249-
return <ErrorMessage error={datasetAccessRequestsQuery.error} />
244+
if (fetchAccessRequestsForDataset.error)
245+
return <ErrorMessage error={fetchAccessRequestsForDataset.error} />
250246
if (
251-
datasetAccessRequestsQuery.loading ||
252-
!datasetAccessRequestsQuery.data?.accessRequestsForDataset
247+
fetchAccessRequestsForDataset.loading ||
248+
!fetchAccessRequestsForDataset.data?.accessRequests
253249
)
254250
return <div />
255251

256252
const datasetAccessRequests =
257-
datasetAccessRequestsQuery.data?.accessRequestsForDataset
253+
fetchAccessRequestsForDataset.data.accessRequests as any[]
258254

259255
if (getDataset.error)
260256
return <ErrorMessage error={getDataset.error} />
@@ -271,12 +267,6 @@ const DatasetAccess = ({ id }: AccessListProps) => {
271267
await approveAccessRequest({
272268
variables: { id: requestID },
273269
refetchQueries: [
274-
{
275-
query: GET_ACCESS_REQUESTS_FOR_DATASET,
276-
variables: {
277-
datasetID: id,
278-
},
279-
},
280270
],
281271
})
282272
} catch (e: any) {
@@ -289,12 +279,6 @@ const DatasetAccess = ({ id }: AccessListProps) => {
289279
await denyAccessRequest({
290280
variables: { id: requestID },
291281
refetchQueries: [
292-
{
293-
query: GET_ACCESS_REQUESTS_FOR_DATASET,
294-
variables: {
295-
datasetID: id,
296-
},
297-
},
298282
],
299283
})
300284
} catch (e: any) {

components/dataproducts/accessRequest/accessRequestsListForOwner.tsx

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
11
import * as React from 'react'
22
import { useState } from 'react'
33
import {
4-
AccessRequestsForDatasetQuery,
54
useApproveAccessRequestMutation,
65
} from '../../../lib/schema/graphql'
76
import { Alert, Button, Table } from '@navikt/ds-react'
87
import { useRouter } from 'next/router'
98

109
interface AccessListProps {
11-
accessQuery: AccessRequestsForDatasetQuery | undefined
10+
accessRequests: any[]
1211
}
1312

14-
const AccessRequestsListForOwner = ({ accessQuery }: AccessListProps) => {
15-
const access = accessQuery?.accessRequestsForDataset
13+
const AccessRequestsListForOwner = ({ accessRequests }: AccessListProps) => {
1614
const [approveAccessRequest] = useApproveAccessRequestMutation()
1715
const [isDenying, setIsDenying] = useState<Array<string>>([])
1816

1917
const [formError, setFormError] = useState('')
20-
if (access?.length === 0) {
18+
if (accessRequests?.length === 0) {
2119
return <>Ingen har forespurt tilgang til produktet</>
2220
}
2321

@@ -52,7 +50,7 @@ const AccessRequestsListForOwner = ({ accessQuery }: AccessListProps) => {
5250
</Table.Row>
5351
</Table.Header>
5452
<Table.Body>
55-
{access?.map((a, i) => (
53+
{accessRequests?.map((a, i) => (
5654
<Table.Row key={i}>
5755
<Table.DataCell align="right">{a.subject}</Table.DataCell>
5856
<Table.DataCell>{a.expires}</Table.DataCell>

components/dataproducts/dataset/access/datasetAccessForOwner.tsx

-38
This file was deleted.

components/dataproducts/dataset/access/datasetAccessForUser.tsx

-54
This file was deleted.

lib/queries/accessRequest/accessRequest.ts

-24
This file was deleted.

lib/queries/accessRequest/accessRequestsForDataset.ts

-20
This file was deleted.

lib/rest/access.ts

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { useEffect, useState } from "react";
2+
import { fetchAccessRequestUrl, fetchTemplate } from "./restApi";
3+
4+
export const fetchAccessRequests = async (datasetId: string) => {
5+
const url = fetchAccessRequestUrl(datasetId);
6+
return fetchTemplate(url);
7+
}
8+
9+
export const useFetchAccessRequestsForDataset = (datasetId: string)=>{
10+
const [data, setData] = useState<any>(undefined)
11+
const [loading, setLoading] = useState(false)
12+
const [error, setError] = useState(null)
13+
14+
15+
useEffect(()=>{
16+
if(!datasetId) return
17+
fetchAccessRequests(datasetId).then((res)=> res.json())
18+
.then((data)=>
19+
{
20+
setError(null)
21+
setData(data)
22+
})
23+
.catch((err)=>{
24+
setError(err)
25+
setData(undefined)
26+
}).finally(()=>{
27+
setLoading(false)
28+
})
29+
}, [datasetId])
30+
31+
return {data, loading, error}
32+
}

lib/rest/restApi.ts

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export const getProductAreasUrl = () => `${apiUrl()}/productareas`
1515
export const getProductAreaUrl = (id: string) => `${apiUrl()}/productareas/${id}`
1616
export const fetchUserDataUrl = () => `${apiUrl()}/userData`
1717
export const fetchKeywordsUrl = () => `${apiUrl()}/keywords`
18+
export const fetchAccessRequestUrl = (datasetId: string) => `${apiUrl()}/accessRequests?datasetId=${datasetId}`
1819
export const searchTeamKatalogenUrl = (gcpGroups?: string[]) => {
1920
const parameters = gcpGroups?.length ? gcpGroups.map(group => `gcpGroups=${encodeURIComponent(group)}`).join('&') : ''
2021
const query = parameters ? `?${parameters}` : ''

0 commit comments

Comments
 (0)