diff --git a/components/dataproducts/accessRequest/newAccessRequest.tsx b/components/dataproducts/accessRequest/newAccessRequest.tsx index 11dd219f..c58fa14f 100644 --- a/components/dataproducts/accessRequest/newAccessRequest.tsx +++ b/components/dataproducts/accessRequest/newAccessRequest.tsx @@ -1,7 +1,7 @@ import { NewAccessRequest, useCreateAccessRequestMutation, - useDataproductQuery, + useDataproductSummaryQuery, } from '../../../lib/schema/graphql' import { useState } from 'react' import AccessRequestForm from './accessRequestForm' @@ -21,7 +21,7 @@ const NewAccessRequestForm = ({ dataset, setModal }: NewAccessRequestFormProps) const [error, setError] = useState(null) const router = useRouter() - const dp = useDataproductQuery({ + const dp = useDataproductSummaryQuery({ variables: { id: dataset.dataproductID, }, @@ -41,7 +41,7 @@ const NewAccessRequestForm = ({ dataset, setModal }: NewAccessRequestFormProps) }, refetchQueries: ['userInfoBasics'], }).then(() => { - router.push(`/dataproduct/${dp?.data?.dataproduct.id}/${dataset.id}`) + router.push(`/dataproduct/${dp?.data?.dataproductSummary.id}/${dataset.id}`) }) } diff --git a/components/dataproducts/dataproductSidebar.tsx b/components/dataproducts/dataproductSidebar.tsx index 0e27c210..68c1c0d2 100644 --- a/components/dataproducts/dataproductSidebar.tsx +++ b/components/dataproducts/dataproductSidebar.tsx @@ -1,14 +1,14 @@ import humanizeDate from '../../lib/humanizeDate' import * as React from 'react' import { ExternalLink } from '@navikt/ds-icons' -import { DataproductQuery } from '../../lib/schema/graphql' +import { DataproductSummaryQuery } from '../../lib/schema/graphql' import { useRouter } from 'next/router' import { Alert, Link } from '@navikt/ds-react' import { Subject, SubjectHeader } from '../subject' import { isEmail } from '../../lib/validators' interface DataproductDetailProps { - product: DataproductQuery['dataproduct'] + product: DataproductSummaryQuery['dataproductSummary'] isOwner: boolean menuItems: Array<{ title: string diff --git a/components/dataproducts/dataset/dataset.tsx b/components/dataproducts/dataset/dataset.tsx index 5fbc7764..b9a64783 100644 --- a/components/dataproducts/dataset/dataset.tsx +++ b/components/dataproducts/dataset/dataset.tsx @@ -1,22 +1,25 @@ import { isAfter, parseISO } from 'date-fns' import { - DataproductQuery, + DataproductSummaryQuery, DatasetQuery, UserInfoBasicsQuery, + useDatasetQuery, } from '../../../lib/schema/graphql' import * as React from 'react' import { useState } from 'react' import EditDataset from './editDataset' import ViewDataset from './viewDataset' +import LoaderSpinner from '../../lib/spinner' +import { Alert } from '@navikt/ds-react' const findAccessType = ( - groups: UserInfoBasicsQuery['userInfo']['groups'] | undefined, - dataset: DatasetQuery['dataset'], + groups: UserInfoBasicsQuery['userInfoBasics']['groups'] | undefined, + dataset: DatasetQuery['dataset'] | undefined, isOwner: boolean ) => { if (!groups) return { type: 'utlogget' } if (isOwner) return { type: 'owner' } - const activeAccess = dataset.access.filter( + const activeAccess = dataset?.access.filter( (a) => !a.revoked && (!a.expires || isAfter(parseISO(a.expires), Date.now())) )[0] @@ -25,19 +28,27 @@ const findAccessType = ( } interface EntryProps { - dataproduct: DataproductQuery['dataproduct'] - dataset: DatasetQuery['dataset'] - userInfo: UserInfoBasicsQuery['userInfo'] | undefined + dataproduct: DataproductSummaryQuery['dataproductSummary'] + datasetID: string + userInfo: UserInfoBasicsQuery['userInfoBasics'] | undefined isOwner: boolean } -const Dataset = ({ dataset, userInfo, isOwner, dataproduct }: EntryProps) => { - const accessType = findAccessType(userInfo?.groups, dataset, isOwner) +const Dataset = ({ datasetID, userInfo, isOwner, dataproduct }: EntryProps) => { + const { data, loading, error } = useDatasetQuery({ + variables: { id: datasetID, rawDesc: true }, + fetchPolicy: "network-only" +}) + + const dataset = data?.dataset + const accessType = findAccessType(userInfo?.groups, data?.dataset, isOwner) const [edit, setEdit] = useState(false) return ( <> - {edit ? ( + {loading && } + {error && {error.message}} + {dataset ? edit ? ( ) : ( { isOwner={isOwner} setEdit={setEdit} /> - )} + ):
} ) } diff --git a/components/dataproducts/dataset/datasetOwnerMenu.tsx b/components/dataproducts/dataset/datasetOwnerMenu.tsx index cdeb575a..9a532344 100644 --- a/components/dataproducts/dataset/datasetOwnerMenu.tsx +++ b/components/dataproducts/dataset/datasetOwnerMenu.tsx @@ -3,19 +3,19 @@ import { Button } from '@navikt/ds-react' import { Dropdown } from '@navikt/ds-react-internal' import { useRouter } from 'next/router' import { useState } from 'react' -import { GET_DATAPRODUCT } from '../../../lib/queries/dataproduct/dataproduct' import { - DataproductQuery, useDeleteDatasetMutation, useUpdateDatasetMutation, DatasetQuery, + DataproductSummaryQuery, } from '../../../lib/schema/graphql' import DeleteModal from '../../lib/deleteModal' import MoveModal from '../../lib/MoveModal' +import { GET_DATAPRODUCT_SUMMARY } from '../../../lib/queries/dataproduct/dataproductSummary' interface IDatasetOwnerMenuProps { dataset: DatasetQuery['dataset'] - dataproduct: DataproductQuery['dataproduct'] + dataproduct: DataproductSummaryQuery['dataproductSummary'] setEdit: (value: boolean) => void } @@ -35,7 +35,7 @@ const DatasetOwnerMenu = ({ awaitRefetchQueries: true, refetchQueries: [ { - query: GET_DATAPRODUCT, + query: GET_DATAPRODUCT_SUMMARY, variables: { id: dataproduct?.id, }, diff --git a/components/dataproducts/dataset/editDatasetForm.tsx b/components/dataproducts/dataset/editDatasetForm.tsx index 1580a9fd..e674147a 100644 --- a/components/dataproducts/dataset/editDatasetForm.tsx +++ b/components/dataproducts/dataset/editDatasetForm.tsx @@ -20,11 +20,11 @@ import { } from '../../../lib/schema/graphql' import { GET_DATASET } from '../../../lib/queries/dataset/dataset' import DescriptionEditor from '../../lib/DescriptionEditor' -import { GET_DATAPRODUCT } from '../../../lib/queries/dataproduct/dataproduct' import TagsSelector from '../../lib/tagsSelector'; import { useColumnTags } from './useColumnTags'; import AnnotateDatasetTable from './annotateDatasetTable'; import {Personopplysninger} from "./helptext"; +import { GET_DATAPRODUCT_SUMMARY } from '../../../lib/queries/dataproduct/dataproductSummary'; interface EditDatasetFormProps { dataset: DatasetQuery["dataset"] @@ -144,7 +144,7 @@ const EditDatasetForm = ({ dataset, setEdit }: EditDatasetFormProps) => { }, }, { - query: GET_DATAPRODUCT, + query: GET_DATAPRODUCT_SUMMARY, variables: { id: dataset.dataproductID, }, diff --git a/components/dataproducts/dataset/newDatasetForm.tsx b/components/dataproducts/dataset/newDatasetForm.tsx index ed844094..9185721a 100644 --- a/components/dataproducts/dataset/newDatasetForm.tsx +++ b/components/dataproducts/dataset/newDatasetForm.tsx @@ -5,7 +5,7 @@ import { useRouter } from 'next/router' import { Controller, FieldValues, useForm } from 'react-hook-form' import * as yup from 'yup' import { CREATE_DATASET } from '../../../lib/queries/dataset/createDataset' -import { DataproductQuery, PiiLevel } from '../../../lib/schema/graphql' +import { DataproductSummaryQuery, PiiLevel } from '../../../lib/schema/graphql' import DescriptionEditor from '../../lib/DescriptionEditor' import TagsSelector from '../../lib/tagsSelector' import AnnotateDatasetTable from './annotateDatasetTable' @@ -16,7 +16,7 @@ import { PiiForm } from './piiForm' import { useState } from 'react' interface NewDatasetFormProps { - dataproduct: DataproductQuery + dataproduct: DataproductSummaryQuery } const defaultValues: FieldValues = { @@ -88,7 +88,7 @@ const NewDatasetForm = ({ dataproduct }: NewDatasetFormProps) => { } const keywords = watch('keywords') - const team = dataproduct.dataproduct.owner.group + const team = dataproduct.dataproductSummary.owner.group const onAddKeyword = (keyword: string) => { keywords @@ -101,13 +101,13 @@ const NewDatasetForm = ({ dataproduct }: NewDatasetFormProps) => { { onCompleted: (data) => router.push( - `/dataproduct/${dataproduct.dataproduct.id}/${dataproduct.dataproduct.slug}/${data.createDataset.id}` + `/dataproduct/${dataproduct.dataproductSummary.id}/${dataproduct.dataproductSummary.slug}/${data.createDataset.id}` ), } ) const onSubmitForm = async (requestData: any) => { - requestData.dataproductID = dataproduct.dataproduct.id + requestData.dataproductID = dataproduct.dataproductSummary.id requestData.bigquery.piiTags = JSON.stringify(Object.fromEntries(tags || new Map())) const pii = requestData.pii === "sensitive" ? PiiLevel.Sensitive @@ -209,7 +209,7 @@ const NewDatasetForm = ({ dataproduct }: NewDatasetFormProps) => { variant="secondary" onClick={() => { router.push( - `/dataproduct/${dataproduct.dataproduct.id}/${dataproduct.dataproduct.slug}/info` + `/dataproduct/${dataproduct.dataproductSummary.id}/${dataproduct.dataproductSummary.slug}/info` ) }} > diff --git a/components/dataproducts/dataset/viewDataset.tsx b/components/dataproducts/dataset/viewDataset.tsx index 0f784179..12ced017 100644 --- a/components/dataproducts/dataset/viewDataset.tsx +++ b/components/dataproducts/dataset/viewDataset.tsx @@ -5,7 +5,7 @@ import { useState } from 'react' import ReactMarkdown from 'react-markdown' import remarkGfm from 'remark-gfm' import { - DataproductQuery, + DataproductSummaryQuery, DatasetQuery, PiiLevel, UserInfoBasicsQuery, @@ -23,12 +23,12 @@ import { Personopplysninger } from './helptext' interface ViewDatasetProps { dataset: DatasetQuery['dataset'] - dataproduct: DataproductQuery['dataproduct'] + dataproduct: DataproductSummaryQuery['dataproductSummary'] accessType: { type: string expires?: any } - userInfo: UserInfoBasicsQuery['userInfo'] | undefined + userInfo: UserInfoBasicsQuery['userInfoBasics'] | undefined isOwner: boolean setEdit: (value: boolean) => void } diff --git a/components/dataproducts/editDataproduct.tsx b/components/dataproducts/editDataproduct.tsx index 3a0b04d9..64812e6a 100644 --- a/components/dataproducts/editDataproduct.tsx +++ b/components/dataproducts/editDataproduct.tsx @@ -5,17 +5,17 @@ import { yupResolver } from '@hookform/resolvers/yup'; import { useState } from 'react' import TeamkatalogenSelector from '../lib/teamkatalogenSelector' import { - DataproductQuery, + DataproductSummaryQuery, UpdateDataproduct, useUpdateDataproductMutation, } from '../../lib/schema/graphql' import DescriptionEditor from '../lib/DescriptionEditor' import { useRouter } from 'next/router' -import { GET_DATAPRODUCT } from '../../lib/queries/dataproduct/dataproduct' import { ContactInput } from './contactInput'; +import { GET_DATAPRODUCT_SUMMARY } from '../../lib/queries/dataproduct/dataproductSummary'; interface EditDatacollectionFormProps { - product: DataproductQuery['dataproduct'] + product: DataproductSummaryQuery['dataproductSummary'] } const EditDataproduct = ({ product }: EditDatacollectionFormProps) => { @@ -45,7 +45,7 @@ const EditDataproduct = ({ product }: EditDatacollectionFormProps) => { awaitRefetchQueries: true, refetchQueries: [ { - query: GET_DATAPRODUCT, + query: GET_DATAPRODUCT_SUMMARY, variables: { id: product.id, }, diff --git a/components/dataproducts/explore.tsx b/components/dataproducts/explore.tsx index 750f0401..73816244 100644 --- a/components/dataproducts/explore.tsx +++ b/components/dataproducts/explore.tsx @@ -1,13 +1,12 @@ import { MappingService, - useDataproductQuery, useUpdateMappingMutation, } from '../../lib/schema/graphql' import ExploreLink, { ItemType } from './exploreLink' import { useState } from 'react' import ErrorMessage from '../lib/error' import { DatasetQuery } from '../../lib/schema/datasetQuery' -import { GET_DATAPRODUCT } from '../../lib/queries/dataproduct/dataproduct' +import { GET_DATAPRODUCT_SUMMARY } from '../../lib/queries/dataproduct/dataproductSummary' interface ExploreProps { dataproductId: string @@ -18,11 +17,6 @@ interface ExploreProps { const Explore = ({ dataproductId, dataset, isOwner }: ExploreProps) => { const [formError, setFormError] = useState(undefined) const [updateMapping] = useUpdateMappingMutation() - useDataproductQuery({ - variables: { id: dataproductId }, - ssr: true, - pollInterval: 30_000, - }) const addToMetabase = async () => { try { @@ -33,7 +27,7 @@ const Explore = ({ dataproductId, dataset, isOwner }: ExploreProps) => { }, refetchQueries: [ { - query: GET_DATAPRODUCT, + query: GET_DATAPRODUCT_SUMMARY, variables: { id: dataproductId, }, diff --git a/components/insightProducts/editInsightProduct.tsx b/components/insightProducts/editInsightProduct.tsx index 5342a716..b438ade4 100644 --- a/components/insightProducts/editInsightProduct.tsx +++ b/components/insightProducts/editInsightProduct.tsx @@ -19,7 +19,7 @@ import TagsSelector from '../lib/tagsSelector' import { UserState } from "../../lib/context"; import { UPDATE_INSIGHT_PRODUCT_METADATA } from '../../lib/queries/insightProducts/editInsightProduct' import { useUpdateInsightProductMetadataMutation } from '../../lib/schema/graphql' -import { USER_INFO } from '../../lib/queries/userInfo/userInfo' +import { USER_INFO_BASICS } from '../../lib/queries/userInfo/userInfoBasics' const schema = yup.object().shape({ name: yup.string().nullable().required('Skriv inn navnet på innsiktsproduktet'), @@ -112,7 +112,7 @@ export const EditInsightProductMetadataForm = ({ id, name, description, type, li }, refetchQueries: [ { - query: USER_INFO, + query: USER_INFO_BASICS, }] } diff --git a/components/lib/detailTypography.tsx b/components/lib/detailTypography.tsx index 707bacfe..19567e4d 100644 --- a/components/lib/detailTypography.tsx +++ b/components/lib/detailTypography.tsx @@ -4,12 +4,12 @@ import remarkGfm from 'remark-gfm' import TagPill from './tagPill' import { Accordion, Heading, Link, Button, Alert } from '@navikt/ds-react' import { useRouter } from 'next/router' -import { DataproductQuery } from '../../lib/schema/graphql' +import { DataproductSummaryQuery } from '../../lib/schema/graphql' export const Description = ({ dataproduct }: { - dataproduct: DataproductQuery['dataproduct'] + dataproduct: DataproductSummaryQuery['dataproductSummary'] }) => { const router = useRouter() const handleChange = (newSlug: string) => { diff --git a/components/search/resultList.tsx b/components/search/resultList.tsx index dceea440..f4fa78a2 100644 --- a/components/search/resultList.tsx +++ b/components/search/resultList.tsx @@ -14,8 +14,8 @@ import { Tabs } from '@navikt/ds-react' import React, { useContext, useEffect, useState } from 'react' import { SearchParam } from '../../pages/search' import { useRouter } from 'next/router' -import { USER_INFO } from '../../lib/queries/userInfo/userInfo' import { UserState } from '../../lib/context' +import { USER_INFO_BASICS } from '../../lib/queries/userInfo/userInfoBasics' const Results = ({ children }: { children: React.ReactNode }) => (
{children}
@@ -103,7 +103,7 @@ const ResultList = ({ }, refetchQueries:[ { - query: USER_INFO, + query: USER_INFO_BASICS, } ] }) diff --git a/components/search/searchResultLink.tsx b/components/search/searchResultLink.tsx index f6e48065..99acdec2 100644 --- a/components/search/searchResultLink.tsx +++ b/components/search/searchResultLink.tsx @@ -8,8 +8,8 @@ import humanizeDate from '../../lib/humanizeDate' import DeleteModal from '../lib/deleteModal' import { useState } from 'react' import { useRouter } from 'next/router' -import { USER_INFO } from '../../lib/queries/userInfo/userInfo' import { GET_PRODUCT_AREAS } from '../../lib/queries/productAreas/productAreas' +import { USER_INFO_BASICS } from '../../lib/queries/userInfo/userInfoBasics' export interface SearchResultProps { resourceType?: string @@ -79,7 +79,7 @@ export const SearchResultLink = ({ query: GET_PRODUCT_AREAS, }, { - query: USER_INFO, + query: USER_INFO_BASICS, } ] }) diff --git a/components/stories/editQuartoStoryMetadata.tsx b/components/stories/editQuartoStoryMetadata.tsx index a3155b93..3c22206d 100644 --- a/components/stories/editQuartoStoryMetadata.tsx +++ b/components/stories/editQuartoStoryMetadata.tsx @@ -18,7 +18,7 @@ import TagsSelector from '../lib/tagsSelector' import {UserState} from "../../lib/context"; import { UPDATE_QUARTOSTORY_METADATA } from '../../lib/queries/story/updateQuartoStory' import { useUpdateQuartoStoryMetadataMutation } from '../../lib/schema/graphql' -import { USER_INFO } from '../../lib/queries/userInfo/userInfo' +import { USER_INFO_BASICS } from '../../lib/queries/userInfo/userInfoBasics' const schema = yup.object().shape({ name: yup.string().nullable().required('Skriv inn navnet på datafortellingen'), @@ -94,7 +94,7 @@ export const EditQuartoStoryMetadataForm = ({id, name, description, keywords, te }, refetchQueries:[ { - query: USER_INFO, + query: USER_INFO_BASICS, } ] } diff --git a/lib/context.tsx b/lib/context.tsx index 3e9a339b..042342cf 100644 --- a/lib/context.tsx +++ b/lib/context.tsx @@ -2,5 +2,5 @@ import { createContext } from 'react' import { UserInfoBasicsQuery} from './schema/graphql' export const UserState = createContext< - UserInfoBasicsQuery['userInfo'] | undefined + UserInfoBasicsQuery['userInfoBasics'] | undefined >(undefined) diff --git a/lib/queries/dataproduct/dataproduct.ts b/lib/queries/dataproduct/dataproduct.ts deleted file mode 100644 index 5d37a114..00000000 --- a/lib/queries/dataproduct/dataproduct.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { gql } from 'graphql-tag' - -export const GET_DATAPRODUCT = gql` - query Dataproduct($id: ID!, $rawDesc: Boolean) { - dataproduct(id: $id) { - id - lastModified - name - description(raw: $rawDesc) - created - slug - owner { - group - teamkatalogenURL - teamContact - productAreaID - teamID - } - keywords - datasets { - id - dataproductID - lastModified - name - description - created - repo - slug - pii - keywords - mappings - anonymisation_description - targetUser - services { - metabase - } - owner { - group - teamkatalogenURL - teamContact - } - access { - id - subject - granter - expires - created - revoked - accessRequestID - accessRequest { - id - polly { - id - name - externalID - url - } - } - } - datasource { - type: __typename - ... on BigQuery { - projectID - dataset - table - lastModified - created - expires - tableType - description - schema { - name - description - mode - type - } - piiTags - pseudoColumns - } - } - } - owner { - group - teamkatalogenURL - teamContact - } - } - } -` diff --git a/lib/queries/dataproduct/dataproductSummary.ts b/lib/queries/dataproduct/dataproductSummary.ts index 97f5d79d..71a34df2 100644 --- a/lib/queries/dataproduct/dataproductSummary.ts +++ b/lib/queries/dataproduct/dataproductSummary.ts @@ -2,7 +2,7 @@ import { gql } from 'graphql-tag' export const GET_DATAPRODUCT_SUMMARY = gql` query DataproductSummary($id: ID!) { - dataproduct(id: $id) { + dataproductSummary(id: $id) { id lastModified name @@ -10,10 +10,18 @@ export const GET_DATAPRODUCT_SUMMARY = gql` created slug keywords + owner { + group + teamkatalogenURL + teamContact + productAreaID + teamID + } datasets { - datasource { - type: __typename - } + id + dataproductID + name + slug } } } diff --git a/lib/queries/userInfo/userInfo.ts b/lib/queries/userInfo/userInfoBasics.ts similarity index 79% rename from lib/queries/userInfo/userInfo.ts rename to lib/queries/userInfo/userInfoBasics.ts index 121870e6..58c75a71 100644 --- a/lib/queries/userInfo/userInfo.ts +++ b/lib/queries/userInfo/userInfoBasics.ts @@ -1,8 +1,8 @@ import { gql } from 'graphql-tag' -export const USER_INFO = gql` +export const USER_INFO_BASICS = gql` query userInfoBasics { - userInfo { + userInfoBasics { name email loginExpiration @@ -10,10 +10,6 @@ export const USER_INFO = gql` name email } - nadaTokens { - team - token - } googleGroups{ name email diff --git a/lib/schema/graphql.ts b/lib/schema/graphql.ts index a22373de..c53c75bf 100644 --- a/lib/schema/graphql.ts +++ b/lib/schema/graphql.ts @@ -173,6 +173,35 @@ export type DataproductDescriptionArgs = { raw?: InputMaybe; }; +/** DataproductSummary contains metadata on a datasource. */ +export type DataproductSummary = { + __typename?: 'DataproductSummary'; + /** created is the timestamp for when the dataproduct was created */ + created: Scalars['Time']; + /** datasets is the list of associated datasets. */ + datasets: Array; + /** description of the dataproduct */ + description: Scalars['String']; + /** id is the identifier for the dataproduct */ + id: Scalars['ID']; + /** keywords is the keyword tags for the datasets in the dataproduct. */ + keywords: Array; + /** lastModified is the timestamp for when the dataproduct was last modified */ + lastModified: Scalars['Time']; + /** name of the dataproduct */ + name: Scalars['String']; + /** owner of the dataproduct. Changes to the dataproduct can only be done by a member of the owner. */ + owner: Owner; + /** slug is the dataproduct slug */ + slug: Scalars['String']; +}; + + +/** DataproductSummary contains metadata on a datasource. */ +export type DataproductSummaryDescriptionArgs = { + raw?: InputMaybe; +}; + /** Dataset contains metadata on a dataset. */ export type Dataset = { __typename?: 'Dataset'; @@ -226,6 +255,19 @@ export type DatasetServices = { metabase?: Maybe; }; +/** DatasetSummary contains metadata on a dataset. */ +export type DatasetSummary = { + __typename?: 'DatasetSummary'; + /** dataproductID is the id of the dataproduct containing the dataset */ + dataproductID: Scalars['ID']; + /** id is the identifier for the dataset */ + id: Scalars['ID']; + /** name of the dataset */ + name: Scalars['String']; + /** slug is the dataset slug */ + slug: Scalars['String']; +}; + /** Datasource defines types that can be returned as a dataset datasource. */ export type Datasource = BigQuery; @@ -921,6 +963,8 @@ export type Query = { accessiblePseudoDatasets: Array; /** dataproduct returns the given dataproduct. */ dataproduct: Dataproduct; + /** dataproductSummary returns the given dataproduct. */ + dataproductSummary: DataproductSummary; /** dataproducts returns a list of dataproducts. Pagination done using the arguments. */ dataproducts: Array; /** dataset returns the given dataset. */ @@ -983,6 +1027,8 @@ export type Query = { teamkatalogen: Array; /** userInfo returns information about the logged in user. */ userInfo: UserInfo; + /** userInfoBasics returns basic information about the logged in user. */ + userInfoBasics: UserInfo; /** version returns the API version. */ version: Scalars['String']; }; @@ -1008,6 +1054,11 @@ export type QueryDataproductArgs = { }; +export type QueryDataproductSummaryArgs = { + id: Scalars['ID']; +}; + + export type QueryDataproductsArgs = { limit?: InputMaybe; offset?: InputMaybe; @@ -1423,6 +1474,30 @@ export type UserInfo = { stories: Array; }; +/** UserInfoBasics contains metadata on a logged in user */ +export type UserInfoBasics = { + __typename?: 'UserInfoBasics'; + /** allGoogleGroups is the all the known google groups of the user domains. */ + allGoogleGroups?: Maybe>; + /** azureGroups is the azure groups the user is member of. */ + azureGroups?: Maybe>; + /** email of user. */ + email: Scalars['String']; + /** gcpProjects is GCP projects the user is a member of. */ + gcpProjects: Array; + /** googleGroups is the google groups the user is member of. */ + googleGroups?: Maybe>; + /** + * groups the user is a member of. + * @deprecated renamed to googleGroups + */ + groups: Array; + /** loginExpiration is when the token expires. */ + loginExpiration: Scalars['Time']; + /** name of user. */ + name: Scalars['String']; +}; + export type DatasetAccessQueryVariables = Exact<{ id: Scalars['ID']; }>; @@ -1501,20 +1576,12 @@ export type CreateDataproductMutationVariables = Exact<{ export type CreateDataproductMutation = { __typename?: 'Mutation', createDataproduct: { __typename?: 'Dataproduct', id: string, slug: string } }; -export type DataproductQueryVariables = Exact<{ - id: Scalars['ID']; - rawDesc?: InputMaybe; -}>; - - -export type DataproductQuery = { __typename?: 'Query', dataproduct: { __typename?: 'Dataproduct', id: string, lastModified: any, name: string, description: string, created: any, slug: string, keywords: Array, owner: { __typename?: 'Owner', group: string, teamkatalogenURL?: string | null, teamContact?: string | null, productAreaID?: string | null, teamID?: string | null }, datasets: Array<{ __typename?: 'Dataset', id: string, dataproductID: string, lastModified: any, name: string, description: string, created: any, repo?: string | null, slug: string, pii: PiiLevel, keywords: Array, mappings: Array, anonymisation_description?: string | null, targetUser?: string | null, services: { __typename?: 'DatasetServices', metabase?: string | null }, owner: { __typename?: 'Owner', group: string, teamkatalogenURL?: string | null, teamContact?: string | null }, access: Array<{ __typename?: 'Access', id: string, subject: string, granter: string, expires?: any | null, created: any, revoked?: any | null, accessRequestID?: string | null, accessRequest?: { __typename?: 'AccessRequest', id: string, polly?: { __typename?: 'Polly', id: string, name: string, externalID: string, url: string } | null } | null }>, datasource: { __typename?: 'BigQuery', projectID: string, dataset: string, table: string, lastModified: any, created: any, expires?: any | null, tableType: BigQueryType, description: string, piiTags?: string | null, pseudoColumns?: Array | null, type: 'BigQuery', schema: Array<{ __typename?: 'TableColumn', name: string, description: string, mode: string, type: string }> } }> } }; - export type DataproductSummaryQueryVariables = Exact<{ id: Scalars['ID']; }>; -export type DataproductSummaryQuery = { __typename?: 'Query', dataproduct: { __typename?: 'Dataproduct', id: string, lastModified: any, name: string, description: string, created: any, slug: string, keywords: Array, datasets: Array<{ __typename?: 'Dataset', datasource: { __typename?: 'BigQuery', type: 'BigQuery' } }> } }; +export type DataproductSummaryQuery = { __typename?: 'Query', dataproductSummary: { __typename?: 'DataproductSummary', id: string, lastModified: any, name: string, description: string, created: any, slug: string, keywords: Array, owner: { __typename?: 'Owner', group: string, teamkatalogenURL?: string | null, teamContact?: string | null, productAreaID?: string | null, teamID?: string | null }, datasets: Array<{ __typename?: 'DatasetSummary', id: string, dataproductID: string, name: string, slug: string }> } }; export type MetabaseProudctsQueryVariables = Exact<{ [key: string]: never; }>; @@ -1825,11 +1892,6 @@ export type TeamkatalogenQueryVariables = Exact<{ export type TeamkatalogenQuery = { __typename?: 'Query', teamkatalogen: Array<{ __typename?: 'TeamkatalogenResult', name: string, url: string, productAreaID: string, teamID: string }> }; -export type UserInfoBasicsQueryVariables = Exact<{ [key: string]: never; }>; - - -export type UserInfoBasicsQuery = { __typename?: 'Query', userInfo: { __typename?: 'UserInfo', name: string, email: string, loginExpiration: any, groups: Array<{ __typename?: 'Group', name: string, email: string }>, nadaTokens: Array<{ __typename?: 'NadaToken', team: string, token: string }>, googleGroups?: Array<{ __typename?: 'Group', name: string, email: string }> | null, allGoogleGroups?: Array<{ __typename?: 'Group', name: string, email: string }> | null, gcpProjects: Array<{ __typename?: 'GCPProject', id: string, group: { __typename?: 'Group', name: string, email: string } }> } }; - export type UserInfoAccessableDataproductQueryVariables = Exact<{ [key: string]: never; }>; @@ -1840,6 +1902,11 @@ export type UserInfoCompleteQueryVariables = Exact<{ [key: string]: never; }>; export type UserInfoCompleteQuery = { __typename?: 'Query', userInfo: { __typename?: 'UserInfo', name: string, email: string, loginExpiration: any, dataproducts: Array<{ __typename?: 'Dataproduct', id: string, name: string, keywords: Array, slug: string, owner: { __typename?: 'Owner', group: string } }>, accessable: { __typename?: 'AccessibleDatasets', owned: Array<{ __typename?: 'Dataset', id: string, name: string, dataproductID: string, keywords: Array, slug: string, dataproduct: { __typename?: 'Dataproduct', name: string, slug: string }, owner: { __typename?: 'Owner', group: string } }>, granted: Array<{ __typename?: 'Dataset', id: string, name: string, dataproductID: string, keywords: Array, slug: string, dataproduct: { __typename?: 'Dataproduct', name: string, slug: string }, owner: { __typename?: 'Owner', group: string } }> }, groups: Array<{ __typename?: 'Group', name: string, email: string }>, nadaTokens: Array<{ __typename?: 'NadaToken', team: string, token: string }>, googleGroups?: Array<{ __typename?: 'Group', name: string, email: string }> | null, allGoogleGroups?: Array<{ __typename?: 'Group', name: string, email: string }> | null, gcpProjects: Array<{ __typename?: 'GCPProject', id: string, group: { __typename?: 'Group', name: string, email: string } }>, stories: Array<{ __typename?: 'Story', id: string, name: string, keywords: Array, owner: { __typename?: 'Owner', group: string, teamkatalogenURL?: string | null } }>, quartoStories: Array<{ __typename?: 'QuartoStory', id: string, name: string, description: string, keywords: Array, group: string, teamkatalogenURL?: string | null }>, insightProducts: Array<{ __typename?: 'InsightProduct', id: string, name: string, description: string, type: string, link: string, keywords: Array, group: string, teamkatalogenURL?: string | null }>, accessRequests: Array<{ __typename?: 'AccessRequest', id: string, datasetID: string, subject: string, subjectType: SubjectType, granter?: string | null, status: AccessRequestStatus, created: any, expires?: any | null, owner: string, reason?: string | null, polly?: { __typename?: 'Polly', id: string, name: string, externalID: string, url: string } | null }> } }; +export type UserInfoBasicsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type UserInfoBasicsQuery = { __typename?: 'Query', userInfoBasics: { __typename?: 'UserInfo', name: string, email: string, loginExpiration: any, groups: Array<{ __typename?: 'Group', name: string, email: string }>, googleGroups?: Array<{ __typename?: 'Group', name: string, email: string }> | null, allGoogleGroups?: Array<{ __typename?: 'Group', name: string, email: string }> | null, gcpProjects: Array<{ __typename?: 'GCPProject', id: string, group: { __typename?: 'Group', name: string, email: string } }> } }; + export type UserInfoWithDataProductsQueryVariables = Exact<{ [key: string]: never; }>; @@ -2250,15 +2317,16 @@ export function useCreateDataproductMutation(baseOptions?: Apollo.MutationHookOp export type CreateDataproductMutationHookResult = ReturnType; export type CreateDataproductMutationResult = Apollo.MutationResult; export type CreateDataproductMutationOptions = Apollo.BaseMutationOptions; -export const DataproductDocument = gql` - query Dataproduct($id: ID!, $rawDesc: Boolean) { - dataproduct(id: $id) { +export const DataproductSummaryDocument = gql` + query DataproductSummary($id: ID!) { + dataproductSummary(id: $id) { id lastModified name - description(raw: $rawDesc) + description created slug + keywords owner { group teamkatalogenURL @@ -2266,120 +2334,11 @@ export const DataproductDocument = gql` productAreaID teamID } - keywords datasets { id dataproductID - lastModified name - description - created - repo slug - pii - keywords - mappings - anonymisation_description - targetUser - services { - metabase - } - owner { - group - teamkatalogenURL - teamContact - } - access { - id - subject - granter - expires - created - revoked - accessRequestID - accessRequest { - id - polly { - id - name - externalID - url - } - } - } - datasource { - type: __typename - ... on BigQuery { - projectID - dataset - table - lastModified - created - expires - tableType - description - schema { - name - description - mode - type - } - piiTags - pseudoColumns - } - } - } - owner { - group - teamkatalogenURL - teamContact - } - } -} - `; - -/** - * __useDataproductQuery__ - * - * To run a query within a React component, call `useDataproductQuery` and pass it any options that fit your needs. - * When your component renders, `useDataproductQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useDataproductQuery({ - * variables: { - * id: // value for 'id' - * rawDesc: // value for 'rawDesc' - * }, - * }); - */ -export function useDataproductQuery(baseOptions: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(DataproductDocument, options); - } -export function useDataproductLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(DataproductDocument, options); - } -export type DataproductQueryHookResult = ReturnType; -export type DataproductLazyQueryHookResult = ReturnType; -export type DataproductQueryResult = Apollo.QueryResult; -export const DataproductSummaryDocument = gql` - query DataproductSummary($id: ID!) { - dataproduct(id: $id) { - id - lastModified - name - description - created - slug - keywords - datasets { - datasource { - type: __typename - } } } } @@ -4262,65 +4221,6 @@ export function useTeamkatalogenLazyQuery(baseOptions?: Apollo.LazyQueryHookOpti export type TeamkatalogenQueryHookResult = ReturnType; export type TeamkatalogenLazyQueryHookResult = ReturnType; export type TeamkatalogenQueryResult = Apollo.QueryResult; -export const UserInfoBasicsDocument = gql` - query userInfoBasics { - userInfo { - name - email - loginExpiration - groups { - name - email - } - nadaTokens { - team - token - } - googleGroups { - name - email - } - allGoogleGroups { - name - email - } - gcpProjects { - id - group { - name - email - } - } - } -} - `; - -/** - * __useUserInfoBasicsQuery__ - * - * To run a query within a React component, call `useUserInfoBasicsQuery` and pass it any options that fit your needs. - * When your component renders, `useUserInfoBasicsQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useUserInfoBasicsQuery({ - * variables: { - * }, - * }); - */ -export function useUserInfoBasicsQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(UserInfoBasicsDocument, options); - } -export function useUserInfoBasicsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(UserInfoBasicsDocument, options); - } -export type UserInfoBasicsQueryHookResult = ReturnType; -export type UserInfoBasicsLazyQueryHookResult = ReturnType; -export type UserInfoBasicsQueryResult = Apollo.QueryResult; export const UserInfoAccessableDataproductDocument = gql` query userInfoAccessableDataproduct { userInfo { @@ -4523,6 +4423,61 @@ export function useUserInfoCompleteLazyQuery(baseOptions?: Apollo.LazyQueryHookO export type UserInfoCompleteQueryHookResult = ReturnType; export type UserInfoCompleteLazyQueryHookResult = ReturnType; export type UserInfoCompleteQueryResult = Apollo.QueryResult; +export const UserInfoBasicsDocument = gql` + query userInfoBasics { + userInfoBasics { + name + email + loginExpiration + groups { + name + email + } + googleGroups { + name + email + } + allGoogleGroups { + name + email + } + gcpProjects { + id + group { + name + email + } + } + } +} + `; + +/** + * __useUserInfoBasicsQuery__ + * + * To run a query within a React component, call `useUserInfoBasicsQuery` and pass it any options that fit your needs. + * When your component renders, `useUserInfoBasicsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useUserInfoBasicsQuery({ + * variables: { + * }, + * }); + */ +export function useUserInfoBasicsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(UserInfoBasicsDocument, options); + } +export function useUserInfoBasicsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(UserInfoBasicsDocument, options); + } +export type UserInfoBasicsQueryHookResult = ReturnType; +export type UserInfoBasicsLazyQueryHookResult = ReturnType; +export type UserInfoBasicsQueryResult = Apollo.QueryResult; export const UserInfoWithDataProductsDocument = gql` query userInfoWithDataProducts { userInfo { diff --git a/pages/_app.tsx b/pages/_app.tsx index 0d509330..883c0582 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -18,18 +18,18 @@ import { isBefore, parseISO } from 'date-fns' const MyApp = ({ Component, pageProps }: AppInitialProps & AppContext) => { const apolloClient = useApollo(pageProps) - const { data, error } = useUserInfoBasicsQuery({ + /*const { data, error } = useUserInfoBasicsQuery({ client: apolloClient, }) - if (data && isBefore(parseISO(data.userInfo.loginExpiration), Date.now())) { + + if (data && isBefore(parseISO(data.userInfoBasics.loginExpiration), Date.now())) { apolloClient.cache.evict({ fieldName: 'userInfo' }) apolloClient.cache.gc() } - +*/ return ( - { - ) } diff --git a/pages/admin/tags/index.tsx b/pages/admin/tags/index.tsx index 4e19e55b..3c6652cc 100644 --- a/pages/admin/tags/index.tsx +++ b/pages/admin/tags/index.tsx @@ -51,7 +51,7 @@ const TagsCleaner = () => { return Failed to fetch user information } - const notMemberOfNada = !user.data.userInfo.groups.find( + const notMemberOfNada = !user.data.userInfoBasics.groups.find( (g) => g.name === 'nada' ) if (notMemberOfNada) { diff --git a/pages/dataproduct/[id]/[[...page]].tsx b/pages/dataproduct/[id]/[[...page]].tsx index 6a3f2d30..0486225b 100644 --- a/pages/dataproduct/[id]/[[...page]].tsx +++ b/pages/dataproduct/[id]/[[...page]].tsx @@ -1,10 +1,10 @@ -import { useDataproductQuery } from '../../../lib/schema/graphql' +import { useDataproductSummaryQuery } from '../../../lib/schema/graphql' import { GetServerSideProps } from 'next' import { addApolloState, initializeApollo } from '../../../lib/apollo' -import { GET_DATAPRODUCT } from '../../../lib/queries/dataproduct/dataproduct' import { useRouter } from 'next/router' import { useEffect } from 'react' import Head from 'next/head' +import { GET_DATAPRODUCT_SUMMARY } from '../../../lib/queries/dataproduct/dataproductSummary' interface DataproductProps { id: string @@ -17,12 +17,12 @@ const Dataproduct = (props: DataproductProps) => { const currentPage = router.query.page?.[0] ?? 'info' console.log(currentPage) - const productQuery = useDataproductQuery({ + const productQuery = useDataproductSummaryQuery({ variables: { id }, ssr: true, }) - const product = productQuery?.data?.dataproduct + const product = productQuery?.data?.dataproductSummary useEffect(() => { router.push(`/dataproduct/${id}/${product?.slug}/${currentPage}`) @@ -46,7 +46,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => { try { await apolloClient.query({ - query: GET_DATAPRODUCT, + query: GET_DATAPRODUCT_SUMMARY, variables: { id }, context: { headers: { diff --git a/pages/dataproduct/[id]/[slug]/[[...page]].tsx b/pages/dataproduct/[id]/[slug]/[[...page]].tsx index 83c3c9b8..bf0e1c68 100644 --- a/pages/dataproduct/[id]/[slug]/[[...page]].tsx +++ b/pages/dataproduct/[id]/[slug]/[[...page]].tsx @@ -2,13 +2,11 @@ import LoaderSpinner from '../../../../components/lib/spinner' import ErrorMessage from '../../../../components/lib/error' import { Group, - SearchContentDocument, - useDataproductQuery, + useDataproductSummaryQuery, useDeleteDataproductMutation, } from '../../../../lib/schema/graphql' import { GetServerSideProps } from 'next' import { addApolloState, initializeApollo } from '../../../../lib/apollo' -import { GET_DATAPRODUCT } from '../../../../lib/queries/dataproduct/dataproduct' import * as React from 'react' import { useContext, useEffect, useState } from 'react' import amplitudeLog from '../../../../lib/amplitude' @@ -25,6 +23,7 @@ import { AddCircle } from '@navikt/ds-icons' import NewDatasetForm from '../../../../components/dataproducts/dataset/newDatasetForm' import { truncate } from '../../../../lib/stringUtils' import InnerContainer from '../../../../components/lib/innerContainer' +import { GET_DATAPRODUCT_SUMMARY } from '../../../../lib/queries/dataproduct/dataproductSummary' interface DataproductProps { id: string @@ -38,23 +37,31 @@ const Dataproduct = (props: DataproductProps) => { const [showDelete, setShowDelete] = useState(false) const [deleteError, setDeleteError] = useState('') - const userInfo = useContext(UserState) - const productQuery = useDataproductQuery({ - variables: { id, rawDesc: false }, + //const userInfo = useContext(UserState) + const userInfo = { + groups: [], + id: "123", + name: "test", + email: "", + loginExpiration: "", + gcpProjects: [], + } + const productQuery = useDataproductSummaryQuery({ + variables: { id}, ssr: true, }) - const isOwner = - userInfo?.groups === undefined + const isOwner = true + /*userInfo?.groups === undefined ? false : userInfo.groups.some( (g: Group) => g.email === productQuery?.data?.dataproduct?.owner.group - ) + )*/ useEffect(() => { const eventProperties = { sidetittel: 'produktside', - title: productQuery.data?.dataproduct.name, + title: productQuery.data?.dataproductSummary.name, } amplitudeLog('sidevisning', eventProperties) }) @@ -62,24 +69,23 @@ const Dataproduct = (props: DataproductProps) => { const [deleteDataproduct] = useDeleteDataproductMutation({ variables: { id: id }, awaitRefetchQueries: true, - refetchQueries: ['searchContent'], }) const onDelete = async () => { try { await deleteDataproduct() - amplitudeLog('slett dataprodukt', {name: productQuery.data?.dataproduct.name}) + amplitudeLog('slett dataprodukt', {name: productQuery.data?.dataproductSummary.name}) await router.push('/') } catch (e: any) { - amplitudeLog('slett dataprodukt feilet', {name: productQuery.data?.dataproduct.name}) + amplitudeLog('slett dataprodukt feilet', {name: productQuery.data?.dataproductSummary.name}) setDeleteError(e.toString()) } } if (productQuery.error) return - if (productQuery.loading || !productQuery.data?.dataproduct) + if (productQuery.loading || !productQuery.data?.dataproductSummary) return - const product = productQuery.data.dataproduct + const product = productQuery.data.dataproductSummary const menuItems: Array<{ title: any @@ -103,7 +109,7 @@ const Dataproduct = (props: DataproductProps) => { slug: dataset.id, component: ( { }) }) + if (isOwner) { menuItems.push({ title: ( @@ -157,7 +164,7 @@ const Dataproduct = (props: DataproductProps) => { currentPage={currentPage} />
- {menuItems.map((i, idx) => ( + {menuItems.filter((_, i)=> i== currentPage).map((i, idx) => ( { try { await apolloClient.query({ - query: GET_DATAPRODUCT, + query: GET_DATAPRODUCT_SUMMARY, variables: { id }, context: { headers: { diff --git a/pages/dataproduct/[id]/[slug]/edit.tsx b/pages/dataproduct/[id]/[slug]/edit.tsx index 86b11fef..a6f94160 100644 --- a/pages/dataproduct/[id]/[slug]/edit.tsx +++ b/pages/dataproduct/[id]/[slug]/edit.tsx @@ -2,12 +2,11 @@ import LoaderSpinner from '../../../../components/lib/spinner' import ErrorMessage from '../../../../components/lib/error' import { Group, - useDataproductQuery, + useDataproductSummaryQuery, useDeleteDataproductMutation, } from '../../../../lib/schema/graphql' import { GetServerSideProps } from 'next' import { addApolloState, initializeApollo } from '../../../../lib/apollo' -import { GET_DATAPRODUCT } from '../../../../lib/queries/dataproduct/dataproduct' import * as React from 'react' import { useContext, useEffect, useState } from 'react' import amplitudeLog from '../../../../lib/amplitude' @@ -18,6 +17,7 @@ import { UserState } from '../../../../lib/context' import DeleteModal from '../../../../components/lib/deleteModal' import { useRouter } from 'next/router' import InnerContainer from '../../../../components/lib/innerContainer' +import { GET_DATAPRODUCT_SUMMARY } from '../../../../lib/queries/dataproduct/dataproductSummary' interface DataproductProps { id: string @@ -36,27 +36,27 @@ const DataproductEdit = (props: DataproductProps) => { refetchQueries: ['searchContent'], }) - const { data, loading, error } = useDataproductQuery({ - variables: { id, rawDesc: true }, + const { data, loading, error } = useDataproductSummaryQuery({ + variables: { id}, ssr: true, }) useEffect(() => { const eventProperties = { sidetittel: 'productEdit', - title: data?.dataproduct.name, + title: data?.dataproductSummary.name, } amplitudeLog('sidevisning', eventProperties) - }, [data?.dataproduct.name]) + }, [data?.dataproductSummary.name]) if (error) return - if (loading || !data?.dataproduct) return + if (loading || !data?.dataproductSummary) return const isOwner = userInfo?.groups === undefined ? false : userInfo.groups.some( - (g: Group) => g.email === data.dataproduct.owner.group + (g: Group) => g.email === data.dataproductSummary.owner.group ) const onDelete = async () => { @@ -71,9 +71,9 @@ const DataproductEdit = (props: DataproductProps) => { return ( - {data.dataproduct.name} + {data.dataproductSummary.name} - + {isOwner && (

@@ -86,13 +86,13 @@ const DataproductEdit = (props: DataproductProps) => { )}

- +
setShowDelete(false)} onConfirm={() => onDelete()} - name={data.dataproduct.name} + name={data.dataproductSummary.name} error={deleteError} resource="dataprodukt" /> @@ -107,7 +107,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => { const apolloClient = initializeApollo() await apolloClient.query({ - query: GET_DATAPRODUCT, + query: GET_DATAPRODUCT_SUMMARY, variables: { id }, context: { headers: { diff --git a/pages/dataproduct/new.tsx b/pages/dataproduct/new.tsx index 35e07948..7510ce3a 100644 --- a/pages/dataproduct/new.tsx +++ b/pages/dataproduct/new.tsx @@ -12,7 +12,7 @@ import InnerContainer from '../../components/lib/innerContainer' const NewDataproduct = () => { const userInfo = useUserInfoBasicsQuery() - if (!userInfo.data?.userInfo) + if (!userInfo.data?.userInfoBasics) return (

Du må være logget inn!

diff --git a/pages/index.tsx b/pages/index.tsx index 22203142..f82fe20b 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -11,7 +11,7 @@ import { FrontPageLogo } from '../components/index/frontPageLogo' import { useEffect, useState } from 'react' import amplitudeLog from '../lib/amplitude' import Head from 'next/head' -import { USER_INFO } from '../lib/queries/userInfo/userInfo' +import { USER_INFO_BASICS } from '../lib/queries/userInfo/userInfoBasics' import StoryLogo from '../components/lib/icons/storyLogo' import Link from 'next/link' import ProductAreaLinks from '../components/productArea/productAreaLinks' @@ -134,14 +134,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => { const apolloClient = initializeApollo(null, cookie) await apolloClient.query({ - query: USER_INFO, - }) - await apolloClient.query({ - query: SearchContentDocument, - variables: { q: { limit: SEARCH_LIMIT } }, - }) - await apolloClient.query({ - query: MetabaseProudctsDocument, + query: USER_INFO_BASICS, }) await apolloClient.query({ query: KeywordsDocument, diff --git a/pages/insightProduct/new.tsx b/pages/insightProduct/new.tsx index 12820f80..987fefac 100644 --- a/pages/insightProduct/new.tsx +++ b/pages/insightProduct/new.tsx @@ -12,7 +12,7 @@ import InnerContainer from '../../components/lib/innerContainer' const NewInsightProduct = () => { const userInfo = useUserInfoBasicsQuery() - if (!userInfo.data?.userInfo) + if (!userInfo.data?.userInfoBasics) return (

Du må være logget inn!

diff --git a/pages/story/new.tsx b/pages/story/new.tsx index 98579ad9..91359241 100644 --- a/pages/story/new.tsx +++ b/pages/story/new.tsx @@ -12,7 +12,7 @@ import InnerContainer from '../../components/lib/innerContainer' const NewStory = () => { const userInfo = useUserInfoBasicsQuery() - if (!userInfo.data?.userInfo) + if (!userInfo.data?.userInfoBasics) return (

Du må være logget inn!