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

Commit 506cb49

Browse files
committed
bug(update story metadata)
The edit story metadata form referenced nonexisting key in userdata objecti for google groups. Changed to correct key and added refetching of story metadata for each form update.
1 parent bf4d7ed commit 506cb49

File tree

3 files changed

+45
-12
lines changed

3 files changed

+45
-12
lines changed

components/stories/editStoryMetadata.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export const EditStoryMetadataForm = ({id, name, description, keywords, teamkata
154154
({ group }: { group: { name: string } }) => (
155155
<option
156156
value={
157-
userInfo?.groups.filter((g: any) => g.name === group.name)[0]
157+
userInfo?.googleGroups.filter((g: any) => g.name === group.name)[0]
158158
.email
159159
}
160160
key={group.name}

lib/rest/restApi.ts

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export const fetchAccessRequestUrl = (datasetId: string) => `${apiUrl()}/accessR
1919
export const fetchBQDatasetsUrl = (projectId: string) => `${apiUrl()}/bigquery/datasets?projectId=${projectId}`
2020
export const fetchBQTablesUrl = (projectId: string, datasetId: string) => `${apiUrl()}/bigquery/tables?projectId=${projectId}&datasetId=${datasetId}`
2121
export const fetchBQColumnsUrl = (projectId: string, datasetId: string, tableId: string) => `${apiUrl()}/bigquery/columns?projectId=${projectId}&datasetId=${datasetId}&tableId=${tableId}`
22+
export const fetchStoryMetadataURL = (id: string) => `${apiUrl()}/stories/${id}`
2223
export const searchTeamKatalogenUrl = (gcpGroups?: string[]) => {
2324
const parameters = gcpGroups?.length ? gcpGroups.map(group => `gcpGroups=${encodeURIComponent(group)}`).join('&') : ''
2425
const query = parameters ? `?${parameters}` : ''

pages/story/[id]/edit.tsx

+43-11
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,52 @@
1-
import { Loader } from "@navikt/ds-react";
21
import { useRouter } from "next/router"
32
import { EditStoryMetadataForm } from "../../../components/stories/editStoryMetadata";
4-
import { useDataStoryQuery } from "../../../lib/schema/graphql";
3+
import LoaderSpinner from "../../../components/lib/spinner";
4+
import { fetchStoryMetadataURL, fetchTemplate } from "../../../lib/rest/restApi";
5+
import { useEffect, useState } from "react";
6+
import ErrorMessage from "../../../components/lib/error";
7+
8+
const getStoryMetadata = async (id: string) => {
9+
const url = fetchStoryMetadataURL(id);
10+
return fetchTemplate(url)
11+
}
12+
13+
export const useGetStoryMetadata = (id: string)=>{
14+
const [storyMetadata, setStoryMetadata] = useState<any>(null)
15+
const [loading, setLoading] = useState(false)
16+
const [error, setError] = useState(null)
17+
18+
19+
useEffect(()=>{
20+
if(!id) return
21+
getStoryMetadata(id).then((res)=> res.json())
22+
.then((story)=>
23+
{
24+
setError(null)
25+
setStoryMetadata(story)
26+
})
27+
.catch((err)=>{
28+
setError(err)
29+
setStoryMetadata(null)
30+
}).finally(()=>{
31+
setLoading(false)
32+
})
33+
}, [id])
34+
35+
return {storyMetadata, loading, error}
36+
}
37+
538

639
const EditStoryPage = ()=>{
740
const router = useRouter()
841
const id = router.query.id;
9-
const storyQuery = useDataStoryQuery({variables: {id:id as string}})
10-
if(storyQuery.error){
11-
return <div>{storyQuery.error.message}</div>
12-
}
13-
14-
if(storyQuery.loading || !storyQuery.data){
15-
return <Loader></Loader>
16-
}
17-
const story = storyQuery.data.dataStory
42+
const data = useGetStoryMetadata(id as string)
43+
44+
if (data.error) return <ErrorMessage error={data.error} />
45+
if (data.loading || !data.storyMetadata)
46+
return <LoaderSpinner />
47+
48+
const story = data.storyMetadata
49+
1850
return <div>
1951
<EditStoryMetadataForm
2052
id={id as string}

0 commit comments

Comments
 (0)