From 479876150242cd610316f8c7d3a84adeb7237356 Mon Sep 17 00:00:00 2001 From: Jessica McInchak Date: Fri, 9 Feb 2024 15:11:33 +0100 Subject: [PATCH] set auth for coredomainclient requests --- .../src/@planx/components/Confirmation/Public.tsx | 11 ++++++++--- .../src/pages/FlowEditor/lib/store/shared.ts | 12 ++++++++---- editor.planx.uk/src/pages/Pay/MakePayment.tsx | 2 +- editor.planx.uk/src/pages/Preview/StatusPage.tsx | 11 ++++++++--- hasura.planx.uk/metadata/tables.yaml | 1 + 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/editor.planx.uk/src/@planx/components/Confirmation/Public.tsx b/editor.planx.uk/src/@planx/components/Confirmation/Public.tsx index 264ce47cdc..81923dc459 100644 --- a/editor.planx.uk/src/@planx/components/Confirmation/Public.tsx +++ b/editor.planx.uk/src/@planx/components/Confirmation/Public.tsx @@ -33,15 +33,20 @@ export type Props = PublicProps; export default function ConfirmationComponent(props: Props) { const [data, setData] = useState([]); - const [sessionId, $public] = useStore((state) => [ + const [sessionId, saveToEmail, $public] = useStore((state) => [ state.sessionId, + state.saveToEmail, state.$public, ]); useEffect(() => { const makeCsvData = async () => { - const csvData = await $public.export.csvData(sessionId); - setData(csvData); + if (sessionId && saveToEmail) { + const csvData = await $public({ + session: { sessionId: sessionId, email: saveToEmail }, + }).export.csvData(sessionId); + setData(csvData); + } }; if (data?.length < 1) { diff --git a/editor.planx.uk/src/pages/FlowEditor/lib/store/shared.ts b/editor.planx.uk/src/pages/FlowEditor/lib/store/shared.ts index e4006f0bef..d7143dfa3e 100644 --- a/editor.planx.uk/src/pages/FlowEditor/lib/store/shared.ts +++ b/editor.planx.uk/src/pages/FlowEditor/lib/store/shared.ts @@ -1,4 +1,5 @@ import { CoreDomainClient } from "@opensystemslab/planx-core"; +import { Auth } from "@opensystemslab/planx-core/dist/requests/graphql"; import { ROOT_NODE_KEY } from "@planx/graph"; import { capitalize } from "lodash"; import { removeSessionIdSearchParam } from "utils"; @@ -32,7 +33,7 @@ export interface SharedStore extends Store.Store { setPreviewEnvironment: (previewEnvironment: PreviewEnvironment) => void; setFlowSlug: (flowSlug: string) => void; setFlowNameFromSlug: (flowSlug: string) => void; - $public: CoreDomainClient; + $public: (auth?: Auth) => CoreDomainClient; $client: CoreDomainClient; } @@ -111,9 +112,12 @@ export const sharedStore: StateCreator< set({ flowName }); }, - $public: new CoreDomainClient({ - targetURL: process.env.REACT_APP_HASURA_URL!, - }), + $public(auth: Auth | undefined): CoreDomainClient { + return new CoreDomainClient({ + targetURL: process.env.REACT_APP_HASURA_URL!, + auth: auth, + }); + }, /** * Authenticated client is re-instantiated upon user login diff --git a/editor.planx.uk/src/pages/Pay/MakePayment.tsx b/editor.planx.uk/src/pages/Pay/MakePayment.tsx index 0587062992..39afbf201f 100644 --- a/editor.planx.uk/src/pages/Pay/MakePayment.tsx +++ b/editor.planx.uk/src/pages/Pay/MakePayment.tsx @@ -175,7 +175,7 @@ export default function MakePayment({ useEffect(() => { const fetchProjectType = async () => { - const projectType = await $public.formatRawProjectTypes( + const projectType = await $public().formatRawProjectTypes( rawProjectTypes, ); setProjectType(projectType); diff --git a/editor.planx.uk/src/pages/Preview/StatusPage.tsx b/editor.planx.uk/src/pages/Preview/StatusPage.tsx index 6ad31286f7..5084b6fb38 100644 --- a/editor.planx.uk/src/pages/Preview/StatusPage.tsx +++ b/editor.planx.uk/src/pages/Preview/StatusPage.tsx @@ -36,15 +36,20 @@ const StatusPage: React.FC = ({ const theme = useTheme(); const [data, setData] = useState([]); - const [sessionId, $public] = useStore((state) => [ + const [sessionId, saveToEmail, $public] = useStore((state) => [ state.sessionId, + state.saveToEmail, state.$public, ]); useEffect(() => { const makeCsvData = async () => { - const csvData = await $public.export.csvData(sessionId); - setData(csvData); + if (sessionId && saveToEmail) { + const csvData = await $public({ + session: { sessionId: sessionId, email: saveToEmail }, + }).export.csvData(sessionId); + setData(csvData); + } }; if (data?.length < 1) { diff --git a/hasura.planx.uk/metadata/tables.yaml b/hasura.planx.uk/metadata/tables.yaml index b4cd51a1bf..698904cdc5 100644 --- a/hasura.planx.uk/metadata/tables.yaml +++ b/hasura.planx.uk/metadata/tables.yaml @@ -658,6 +658,7 @@ columns: - created_at - data + - flow_id - has_user_saved - id - submitted_at