From bb8d477495f0da26e960a5fd82626022aa7315b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Fri, 20 Feb 2026 16:54:11 +0400 Subject: [PATCH] Add request param presence callback to request accesses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Émile Ré --- .../core/WebhooksSettingsPageQuery.graphql.ts | 2 +- ...ooksSettingsPage_createMutation.graphql.ts | 2 +- ...ooksSettingsPage_updateMutation.graphql.ts | 2 +- apps/trust/src/components/DocumentRow.tsx | 15 +- ...questAccessCallback_allMutation.graphql.ts | 87 ++++++++ ...AccessCallback_documentMutation.graphql.ts | 105 +++++++++ ...uestAccessCallback_fileMutation.graphql.ts | 105 +++++++++ ...stAccessCallback_reportMutation.graphql.ts | 105 +++++++++ .../src/hooks/useRequestAccessCallback.ts | 198 +++++++++++++++++ apps/trust/src/layouts/MainLayout.tsx | 12 +- apps/trust/src/main.tsx | 17 +- apps/trust/src/queries/TrustGraph.ts | 2 +- .../TrustGraphCurrentQuery.graphql.ts | 210 +++++++++--------- pkg/server/api/trust/v1/schema.graphql | 2 +- pkg/server/api/trust/v1/schema/schema.go | 2 +- 15 files changed, 738 insertions(+), 128 deletions(-) create mode 100644 apps/trust/src/hooks/__generated__/useRequestAccessCallback_allMutation.graphql.ts create mode 100644 apps/trust/src/hooks/__generated__/useRequestAccessCallback_documentMutation.graphql.ts create mode 100644 apps/trust/src/hooks/__generated__/useRequestAccessCallback_fileMutation.graphql.ts create mode 100644 apps/trust/src/hooks/__generated__/useRequestAccessCallback_reportMutation.graphql.ts create mode 100644 apps/trust/src/hooks/useRequestAccessCallback.ts diff --git a/apps/console/src/__generated__/core/WebhooksSettingsPageQuery.graphql.ts b/apps/console/src/__generated__/core/WebhooksSettingsPageQuery.graphql.ts index 595b77357..271b62780 100644 --- a/apps/console/src/__generated__/core/WebhooksSettingsPageQuery.graphql.ts +++ b/apps/console/src/__generated__/core/WebhooksSettingsPageQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<72029a8e627a0b60cb1e2c226af0d535>> + * @generated SignedSource<<754e567fe99c9c96b8d4e324ce5373b8>> * @lightSyntaxTransform * @nogrep */ diff --git a/apps/console/src/__generated__/core/WebhooksSettingsPage_createMutation.graphql.ts b/apps/console/src/__generated__/core/WebhooksSettingsPage_createMutation.graphql.ts index eb9b8b07b..583427777 100644 --- a/apps/console/src/__generated__/core/WebhooksSettingsPage_createMutation.graphql.ts +++ b/apps/console/src/__generated__/core/WebhooksSettingsPage_createMutation.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<310671de1c8bca322875bfca9102fcbf>> + * @generated SignedSource<<876124efbbec99a5059c28550cb638c0>> * @lightSyntaxTransform * @nogrep */ diff --git a/apps/console/src/__generated__/core/WebhooksSettingsPage_updateMutation.graphql.ts b/apps/console/src/__generated__/core/WebhooksSettingsPage_updateMutation.graphql.ts index f8f5284f0..21c7c8d4f 100644 --- a/apps/console/src/__generated__/core/WebhooksSettingsPage_updateMutation.graphql.ts +++ b/apps/console/src/__generated__/core/WebhooksSettingsPage_updateMutation.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<> * @lightSyntaxTransform * @nogrep */ diff --git a/apps/trust/src/components/DocumentRow.tsx b/apps/trust/src/components/DocumentRow.tsx index 0a721499a..e084bc657 100644 --- a/apps/trust/src/components/DocumentRow.tsx +++ b/apps/trust/src/components/DocumentRow.tsx @@ -11,10 +11,11 @@ import { } from "@probo/ui"; import { useState } from "react"; import { useFragment, useMutation } from "react-relay"; -import { useLocation, useNavigate } from "react-router"; +import { useLocation, useNavigate, useSearchParams } from "react-router"; import { graphql } from "relay-runtime"; import { useMutationWithToasts } from "#/hooks/useMutationWithToast"; +import { getPathPrefix } from "#/utils/pathPrefix"; import type { DocumentRow_requestAccessMutation } from "./__generated__/DocumentRow_requestAccessMutation.graphql"; import type { DocumentRowDownloadMutation } from "./__generated__/DocumentRowDownloadMutation.graphql"; @@ -54,6 +55,7 @@ export function DocumentRow(props: { document: DocumentRowFragment$key }) { const { toast } = useToast(); const navigate = useNavigate(); const location = useLocation(); + const [searchParams] = useSearchParams(); const document = useFragment(documentRowFragment, props.document); const [hasRequested, setHasRequested] = useState( @@ -90,10 +92,15 @@ export function DocumentRow(props: { document: DocumentRowFragment$key }) { }, onError: (error) => { if (error instanceof UnAuthenticatedError) { - const searchParams = new URLSearchParams([[ - "continue", window.location.origin + location.pathname + location.search, + const pathPrefix = getPathPrefix(); + searchParams.set("request-document-id", document.id); + const urlSearchParams = new URLSearchParams([[ + "continue", + window.location.origin + pathPrefix + location.pathname + "?" + searchParams.toString(), ]]); - void navigate(`/connect?${searchParams.toString()}`); + void navigate(`/connect?${urlSearchParams.toString()}`); + + return; } toast({ diff --git a/apps/trust/src/hooks/__generated__/useRequestAccessCallback_allMutation.graphql.ts b/apps/trust/src/hooks/__generated__/useRequestAccessCallback_allMutation.graphql.ts new file mode 100644 index 000000000..48a372025 --- /dev/null +++ b/apps/trust/src/hooks/__generated__/useRequestAccessCallback_allMutation.graphql.ts @@ -0,0 +1,87 @@ +/** + * @generated SignedSource<<71c76287347e6e819c625f5072b4fae4>> + * @lightSyntaxTransform + * @nogrep + */ + +/* tslint:disable */ +/* eslint-disable */ +// @ts-nocheck + +import { ConcreteRequest } from 'relay-runtime'; +export type useRequestAccessCallback_allMutation$variables = Record; +export type useRequestAccessCallback_allMutation$data = { + readonly requestAllAccesses: { + readonly trustCenterAccess: { + readonly id: string; + }; + }; +}; +export type useRequestAccessCallback_allMutation = { + response: useRequestAccessCallback_allMutation$data; + variables: useRequestAccessCallback_allMutation$variables; +}; + +const node: ConcreteRequest = (function(){ +var v0 = [ + { + "alias": null, + "args": null, + "concreteType": "RequestAccessesPayload", + "kind": "LinkedField", + "name": "requestAllAccesses", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "TrustCenterAccess", + "kind": "LinkedField", + "name": "trustCenterAccess", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": null + } +]; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "useRequestAccessCallback_allMutation", + "selections": (v0/*: any*/), + "type": "Mutation", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "useRequestAccessCallback_allMutation", + "selections": (v0/*: any*/) + }, + "params": { + "cacheID": "dd26f85da037142a278f934f06c8c0a0", + "id": null, + "metadata": {}, + "name": "useRequestAccessCallback_allMutation", + "operationKind": "mutation", + "text": "mutation useRequestAccessCallback_allMutation {\n requestAllAccesses {\n trustCenterAccess {\n id\n }\n }\n}\n" + } +}; +})(); + +(node as any).hash = "7f32c58dba23b76a39950d08c25eaaa7"; + +export default node; diff --git a/apps/trust/src/hooks/__generated__/useRequestAccessCallback_documentMutation.graphql.ts b/apps/trust/src/hooks/__generated__/useRequestAccessCallback_documentMutation.graphql.ts new file mode 100644 index 000000000..308d03420 --- /dev/null +++ b/apps/trust/src/hooks/__generated__/useRequestAccessCallback_documentMutation.graphql.ts @@ -0,0 +1,105 @@ +/** + * @generated SignedSource<<6b6304c9a22de890f171632f8c9dabe1>> + * @lightSyntaxTransform + * @nogrep + */ + +/* tslint:disable */ +/* eslint-disable */ +// @ts-nocheck + +import { ConcreteRequest } from 'relay-runtime'; +export type RequestDocumentAccessInput = { + documentId: string; +}; +export type useRequestAccessCallback_documentMutation$variables = { + input: RequestDocumentAccessInput; +}; +export type useRequestAccessCallback_documentMutation$data = { + readonly requestDocumentAccess: { + readonly trustCenterAccess: { + readonly id: string; + }; + }; +}; +export type useRequestAccessCallback_documentMutation = { + response: useRequestAccessCallback_documentMutation$data; + variables: useRequestAccessCallback_documentMutation$variables; +}; + +const node: ConcreteRequest = (function(){ +var v0 = [ + { + "defaultValue": null, + "kind": "LocalArgument", + "name": "input" + } +], +v1 = [ + { + "alias": null, + "args": [ + { + "kind": "Variable", + "name": "input", + "variableName": "input" + } + ], + "concreteType": "RequestAccessesPayload", + "kind": "LinkedField", + "name": "requestDocumentAccess", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "TrustCenterAccess", + "kind": "LinkedField", + "name": "trustCenterAccess", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": null + } +]; +return { + "fragment": { + "argumentDefinitions": (v0/*: any*/), + "kind": "Fragment", + "metadata": null, + "name": "useRequestAccessCallback_documentMutation", + "selections": (v1/*: any*/), + "type": "Mutation", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": (v0/*: any*/), + "kind": "Operation", + "name": "useRequestAccessCallback_documentMutation", + "selections": (v1/*: any*/) + }, + "params": { + "cacheID": "849ea6a746660bdee8ebf805baef7a33", + "id": null, + "metadata": {}, + "name": "useRequestAccessCallback_documentMutation", + "operationKind": "mutation", + "text": "mutation useRequestAccessCallback_documentMutation(\n $input: RequestDocumentAccessInput!\n) {\n requestDocumentAccess(input: $input) {\n trustCenterAccess {\n id\n }\n }\n}\n" + } +}; +})(); + +(node as any).hash = "1ff8b5f560d8c3024e6d5c11bb2ed889"; + +export default node; diff --git a/apps/trust/src/hooks/__generated__/useRequestAccessCallback_fileMutation.graphql.ts b/apps/trust/src/hooks/__generated__/useRequestAccessCallback_fileMutation.graphql.ts new file mode 100644 index 000000000..eccff5d4e --- /dev/null +++ b/apps/trust/src/hooks/__generated__/useRequestAccessCallback_fileMutation.graphql.ts @@ -0,0 +1,105 @@ +/** + * @generated SignedSource<<6db2a4322199d638b3f1ac498ecd066b>> + * @lightSyntaxTransform + * @nogrep + */ + +/* tslint:disable */ +/* eslint-disable */ +// @ts-nocheck + +import { ConcreteRequest } from 'relay-runtime'; +export type RequestTrustCenterFileAccessInput = { + trustCenterFileId: string; +}; +export type useRequestAccessCallback_fileMutation$variables = { + input: RequestTrustCenterFileAccessInput; +}; +export type useRequestAccessCallback_fileMutation$data = { + readonly requestTrustCenterFileAccess: { + readonly trustCenterAccess: { + readonly id: string; + }; + }; +}; +export type useRequestAccessCallback_fileMutation = { + response: useRequestAccessCallback_fileMutation$data; + variables: useRequestAccessCallback_fileMutation$variables; +}; + +const node: ConcreteRequest = (function(){ +var v0 = [ + { + "defaultValue": null, + "kind": "LocalArgument", + "name": "input" + } +], +v1 = [ + { + "alias": null, + "args": [ + { + "kind": "Variable", + "name": "input", + "variableName": "input" + } + ], + "concreteType": "RequestAccessesPayload", + "kind": "LinkedField", + "name": "requestTrustCenterFileAccess", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "TrustCenterAccess", + "kind": "LinkedField", + "name": "trustCenterAccess", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": null + } +]; +return { + "fragment": { + "argumentDefinitions": (v0/*: any*/), + "kind": "Fragment", + "metadata": null, + "name": "useRequestAccessCallback_fileMutation", + "selections": (v1/*: any*/), + "type": "Mutation", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": (v0/*: any*/), + "kind": "Operation", + "name": "useRequestAccessCallback_fileMutation", + "selections": (v1/*: any*/) + }, + "params": { + "cacheID": "1ed0d9f8a3b3dc08c2af16101729d3a9", + "id": null, + "metadata": {}, + "name": "useRequestAccessCallback_fileMutation", + "operationKind": "mutation", + "text": "mutation useRequestAccessCallback_fileMutation(\n $input: RequestTrustCenterFileAccessInput!\n) {\n requestTrustCenterFileAccess(input: $input) {\n trustCenterAccess {\n id\n }\n }\n}\n" + } +}; +})(); + +(node as any).hash = "5105b60de987b135523ada9ee2777dea"; + +export default node; diff --git a/apps/trust/src/hooks/__generated__/useRequestAccessCallback_reportMutation.graphql.ts b/apps/trust/src/hooks/__generated__/useRequestAccessCallback_reportMutation.graphql.ts new file mode 100644 index 000000000..e5cadc7af --- /dev/null +++ b/apps/trust/src/hooks/__generated__/useRequestAccessCallback_reportMutation.graphql.ts @@ -0,0 +1,105 @@ +/** + * @generated SignedSource<> + * @lightSyntaxTransform + * @nogrep + */ + +/* tslint:disable */ +/* eslint-disable */ +// @ts-nocheck + +import { ConcreteRequest } from 'relay-runtime'; +export type RequestReportAccessInput = { + reportId: string; +}; +export type useRequestAccessCallback_reportMutation$variables = { + input: RequestReportAccessInput; +}; +export type useRequestAccessCallback_reportMutation$data = { + readonly requestReportAccess: { + readonly trustCenterAccess: { + readonly id: string; + }; + }; +}; +export type useRequestAccessCallback_reportMutation = { + response: useRequestAccessCallback_reportMutation$data; + variables: useRequestAccessCallback_reportMutation$variables; +}; + +const node: ConcreteRequest = (function(){ +var v0 = [ + { + "defaultValue": null, + "kind": "LocalArgument", + "name": "input" + } +], +v1 = [ + { + "alias": null, + "args": [ + { + "kind": "Variable", + "name": "input", + "variableName": "input" + } + ], + "concreteType": "RequestAccessesPayload", + "kind": "LinkedField", + "name": "requestReportAccess", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "TrustCenterAccess", + "kind": "LinkedField", + "name": "trustCenterAccess", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": null + } +]; +return { + "fragment": { + "argumentDefinitions": (v0/*: any*/), + "kind": "Fragment", + "metadata": null, + "name": "useRequestAccessCallback_reportMutation", + "selections": (v1/*: any*/), + "type": "Mutation", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": (v0/*: any*/), + "kind": "Operation", + "name": "useRequestAccessCallback_reportMutation", + "selections": (v1/*: any*/) + }, + "params": { + "cacheID": "c859384ca219b8302245e0bed292e698", + "id": null, + "metadata": {}, + "name": "useRequestAccessCallback_reportMutation", + "operationKind": "mutation", + "text": "mutation useRequestAccessCallback_reportMutation(\n $input: RequestReportAccessInput!\n) {\n requestReportAccess(input: $input) {\n trustCenterAccess {\n id\n }\n }\n}\n" + } +}; +})(); + +(node as any).hash = "6ad61c2f6638f5d31c9c25b0044f080a"; + +export default node; diff --git a/apps/trust/src/hooks/useRequestAccessCallback.ts b/apps/trust/src/hooks/useRequestAccessCallback.ts new file mode 100644 index 000000000..9e0a6af8e --- /dev/null +++ b/apps/trust/src/hooks/useRequestAccessCallback.ts @@ -0,0 +1,198 @@ +import { formatError, type GraphQLError } from "@probo/helpers"; +import { useTranslate } from "@probo/i18n"; +import { useToast } from "@probo/ui"; +import { useEffect } from "react"; +import { useMutation } from "react-relay"; +import { useSearchParams } from "react-router"; +import { graphql } from "relay-runtime"; + +import type { useRequestAccessCallback_allMutation } from "./__generated__/useRequestAccessCallback_allMutation.graphql"; +import type { useRequestAccessCallback_documentMutation } from "./__generated__/useRequestAccessCallback_documentMutation.graphql"; +import type { useRequestAccessCallback_fileMutation } from "./__generated__/useRequestAccessCallback_fileMutation.graphql"; +import type { useRequestAccessCallback_reportMutation } from "./__generated__/useRequestAccessCallback_reportMutation.graphql"; + +const documentMutation = graphql` + mutation useRequestAccessCallback_documentMutation( + $input: RequestDocumentAccessInput! + ) { + requestDocumentAccess(input: $input) { + trustCenterAccess { + id + } + } + } +`; + +const reportMutation = graphql` + mutation useRequestAccessCallback_reportMutation( + $input: RequestReportAccessInput! + ) { + requestReportAccess(input: $input) { + trustCenterAccess { + id + } + } + } +`; + +const fileMutation = graphql` + mutation useRequestAccessCallback_fileMutation( + $input: RequestTrustCenterFileAccessInput! + ) { + requestTrustCenterFileAccess(input: $input) { + trustCenterAccess { + id + } + } + } +`; + +const allMutation = graphql` + mutation useRequestAccessCallback_allMutation { + requestAllAccesses { + trustCenterAccess { + id + } + } + } +`; + +function errorToastArgs(__: (s: string) => string, error: GraphQLError | GraphQLError[]) { + return { + title: __("Error"), + description: formatError(__("Cannot request access"), error), + variant: "error" as const, + }; +} + +function successToastArgs(__: (s: string) => string) { + return { + title: __("Success"), + description: __("Access request submitted successfully."), + variant: "success" as const, + }; +} + +export function useRequestAccessCallback() { + const [searchParams, setSearchParams] = useSearchParams(); + + const documentId = searchParams.get("request-document-id"); + const reportId = searchParams.get("request-report-id"); + const fileId = searchParams.get("request-file-id"); + const all = searchParams.get("request-all"); + + const { __ } = useTranslate(); + const { toast } = useToast(); + + const [requestDocumentAccess] = useMutation(documentMutation); + const [requestReportAccess] = useMutation(reportMutation); + const [requestFileAccess] = useMutation(fileMutation); + const [requestAll] = useMutation(allMutation); + + useEffect(() => { + if (documentId) { + void requestDocumentAccess({ + variables: { + input: { documentId }, + }, + onCompleted: (_, errors) => { + if (errors?.length) { + toast(errorToastArgs(__, errors)); + searchParams.delete("request-document-id"); + setSearchParams(searchParams); + return; + } + + toast(successToastArgs(__)); + searchParams.delete("request-document-id"); + setSearchParams(searchParams); + }, + onError: (error) => { + toast(errorToastArgs(__, error)); + searchParams.delete("request-document-id"); + setSearchParams(searchParams); + }, + }); + } else if (reportId) { + void requestReportAccess({ + variables: { + input: { reportId }, + }, + onCompleted: (_, errors) => { + if (errors?.length) { + toast(errorToastArgs(__, errors)); + searchParams.delete("request-report-id"); + setSearchParams(searchParams); + return; + } + + toast(successToastArgs(__)); + searchParams.delete("request-report-id"); + setSearchParams(searchParams); + }, + onError: (error) => { + toast(errorToastArgs(__, error)); + searchParams.delete("request-report-id"); + setSearchParams(searchParams); + }, + }); + } else if (fileId) { + void requestFileAccess({ + variables: { + input: { trustCenterFileId: fileId }, + }, + onCompleted: (_, errors) => { + if (errors?.length) { + toast(errorToastArgs(__, errors)); + searchParams.delete("request-file-id"); + setSearchParams(searchParams); + return; + } + + toast(successToastArgs(__)); + searchParams.delete("request-file-id"); + setSearchParams(searchParams); + }, + onError: (error) => { + toast(errorToastArgs(__, error)); + searchParams.delete("request-file-id"); + setSearchParams(searchParams); + }, + }); + } else if (all) { + void requestAll({ + variables: {}, + onCompleted: (_, errors) => { + if (errors?.length) { + toast(errorToastArgs(__, errors)); + searchParams.delete("request-all"); + setSearchParams(searchParams); + return; + } + + toast(successToastArgs(__)); + searchParams.delete("request-all"); + setSearchParams(searchParams); + }, + onError: (error) => { + toast(errorToastArgs(__, error)); + searchParams.delete("request-all"); + setSearchParams(searchParams); + }, + }); + } + }, [ + documentId, + reportId, + fileId, + all, + __, + requestDocumentAccess, + requestReportAccess, + requestFileAccess, + requestAll, + searchParams, + setSearchParams, + toast, + ]); +} diff --git a/apps/trust/src/layouts/MainLayout.tsx b/apps/trust/src/layouts/MainLayout.tsx index 04fc750e0..140a15003 100644 --- a/apps/trust/src/layouts/MainLayout.tsx +++ b/apps/trust/src/layouts/MainLayout.tsx @@ -5,6 +5,7 @@ import { type PreloadedQuery, usePreloadedQuery } from "react-relay"; import { Navigate, Outlet } from "react-router"; import { OrganizationSidebar } from "#/components/OrganizationSidebar"; +import { useRequestAccessCallback } from "#/hooks/useRequestAccessCallback"; import { TrustCenterProvider } from "#/providers/TrustCenterProvider"; import { Viewer } from "#/providers/Viewer"; import type { TrustGraphCurrentQuery } from "#/queries/__generated__/TrustGraphCurrentQuery.graphql"; @@ -21,11 +22,12 @@ export function MainLayout(props: Props) { const theme = useSystemTheme(); - useFavicon(theme === "dark" ? (trustCenter?.darkLogoFileUrl ?? trustCenter?.logoFileUrl) : trustCenter?.logoFileUrl); - - if (!trustCenter) { - return null; - } + useFavicon( + theme === "dark" + ? (trustCenter?.darkLogoFileUrl ?? trustCenter?.logoFileUrl) + : trustCenter?.logoFileUrl, + ); + useRequestAccessCallback(); const hasPendingNDA = data.viewer diff --git a/apps/trust/src/main.tsx b/apps/trust/src/main.tsx index 24af43623..ff72f0916 100644 --- a/apps/trust/src/main.tsx +++ b/apps/trust/src/main.tsx @@ -1,5 +1,4 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -import { StrictMode } from "react"; import { createRoot } from "react-dom/client"; import "./index.css"; @@ -17,13 +16,11 @@ const queryClient = new QueryClient({ }); createRoot(document.getElementById("root")!).render( - - - - - - - - - , + + + + + + + , ); diff --git a/apps/trust/src/queries/TrustGraph.ts b/apps/trust/src/queries/TrustGraph.ts index 6f98f7b87..7b2a707a4 100644 --- a/apps/trust/src/queries/TrustGraph.ts +++ b/apps/trust/src/queries/TrustGraph.ts @@ -7,7 +7,7 @@ export const currentTrustGraphQuery = graphql` email fullName } - currentTrustCenter { + currentTrustCenter @required(action: THROW) { id slug isViewerMember diff --git a/apps/trust/src/queries/__generated__/TrustGraphCurrentQuery.graphql.ts b/apps/trust/src/queries/__generated__/TrustGraphCurrentQuery.graphql.ts index 7e2ce3666..695e445f0 100644 --- a/apps/trust/src/queries/__generated__/TrustGraphCurrentQuery.graphql.ts +++ b/apps/trust/src/queries/__generated__/TrustGraphCurrentQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<663225cc4e0d94b50dc97084c3d51aae>> + * @generated SignedSource<<700a3b76b18e7182c5a08c98b5d7fa2a>> * @lightSyntaxTransform * @nogrep */ @@ -45,7 +45,7 @@ export type TrustGraphCurrentQuery$data = { readonly totalCount: number; }; readonly " $fragmentSpreads": FragmentRefs<"OverviewPageFragment">; - } | null | undefined; + }; readonly viewer: { readonly email: any; readonly fullName: string; @@ -228,106 +228,110 @@ return { "storageKey": null }, { - "alias": null, - "args": null, - "concreteType": "TrustCenter", - "kind": "LinkedField", - "name": "currentTrustCenter", - "plural": false, - "selections": [ - (v2/*: any*/), - (v3/*: any*/), - (v4/*: any*/), - (v5/*: any*/), - (v6/*: any*/), - { - "alias": null, - "args": null, - "concreteType": "NonDisclosureAgreement", - "kind": "LinkedField", - "name": "nonDisclosureAgreement", - "plural": false, - "selections": [ - (v7/*: any*/), - (v8/*: any*/), - { - "alias": null, - "args": null, - "concreteType": "ElectronicSignature", - "kind": "LinkedField", - "name": "viewerSignature", - "plural": false, - "selections": [ - (v9/*: any*/) - ], - "storageKey": null - } - ], - "storageKey": null - }, - { - "alias": null, - "args": null, - "concreteType": "Organization", - "kind": "LinkedField", - "name": "organization", - "plural": false, - "selections": [ - (v10/*: any*/), - (v11/*: any*/), - (v12/*: any*/), - (v0/*: any*/), - (v13/*: any*/) - ], - "storageKey": null - }, - { - "args": null, - "kind": "FragmentSpread", - "name": "OverviewPageFragment" - }, - (v14/*: any*/), - { - "alias": null, - "args": (v15/*: any*/), - "concreteType": "AuditConnection", - "kind": "LinkedField", - "name": "audits", - "plural": false, - "selections": [ - { - "alias": null, - "args": null, - "concreteType": "AuditEdge", - "kind": "LinkedField", - "name": "edges", - "plural": true, - "selections": [ - { - "alias": null, - "args": null, - "concreteType": "Audit", - "kind": "LinkedField", - "name": "node", - "plural": false, - "selections": [ - (v2/*: any*/), - { - "args": null, - "kind": "FragmentSpread", - "name": "AuditRowFragment" - } - ], - "storageKey": null - } - ], - "storageKey": null - } - ], - "storageKey": "audits(first:50)" - } - ], - "storageKey": null + "kind": "RequiredField", + "field": { + "alias": null, + "args": null, + "concreteType": "TrustCenter", + "kind": "LinkedField", + "name": "currentTrustCenter", + "plural": false, + "selections": [ + (v2/*: any*/), + (v3/*: any*/), + (v4/*: any*/), + (v5/*: any*/), + (v6/*: any*/), + { + "alias": null, + "args": null, + "concreteType": "NonDisclosureAgreement", + "kind": "LinkedField", + "name": "nonDisclosureAgreement", + "plural": false, + "selections": [ + (v7/*: any*/), + (v8/*: any*/), + { + "alias": null, + "args": null, + "concreteType": "ElectronicSignature", + "kind": "LinkedField", + "name": "viewerSignature", + "plural": false, + "selections": [ + (v9/*: any*/) + ], + "storageKey": null + } + ], + "storageKey": null + }, + { + "alias": null, + "args": null, + "concreteType": "Organization", + "kind": "LinkedField", + "name": "organization", + "plural": false, + "selections": [ + (v10/*: any*/), + (v11/*: any*/), + (v12/*: any*/), + (v0/*: any*/), + (v13/*: any*/) + ], + "storageKey": null + }, + { + "args": null, + "kind": "FragmentSpread", + "name": "OverviewPageFragment" + }, + (v14/*: any*/), + { + "alias": null, + "args": (v15/*: any*/), + "concreteType": "AuditConnection", + "kind": "LinkedField", + "name": "audits", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "AuditEdge", + "kind": "LinkedField", + "name": "edges", + "plural": true, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "Audit", + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + (v2/*: any*/), + { + "args": null, + "kind": "FragmentSpread", + "name": "AuditRowFragment" + } + ], + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": "audits(first:50)" + } + ], + "storageKey": null + }, + "action": "THROW" } ], "type": "Query", @@ -702,6 +706,6 @@ return { }; })(); -(node as any).hash = "6cbe676214b698d12e2cae08060a7285"; +(node as any).hash = "64b166174da80cd3082ab4becf716b1c"; export default node; diff --git a/pkg/server/api/trust/v1/schema.graphql b/pkg/server/api/trust/v1/schema.graphql index 4e488a370..4661e5e35 100644 --- a/pkg/server/api/trust/v1/schema.graphql +++ b/pkg/server/api/trust/v1/schema.graphql @@ -769,7 +769,7 @@ type Mutation { input: ExportTrustCenterFileInput! ): ExportTrustCenterFilePayload! @session(required: OPTIONAL) - requestDocumentAccess( + requestDocumentAccess( input: RequestDocumentAccessInput! ): RequestAccessesPayload! @session(required: PRESENT) diff --git a/pkg/server/api/trust/v1/schema/schema.go b/pkg/server/api/trust/v1/schema/schema.go index 21e20dab5..f2aeba19e 100644 --- a/pkg/server/api/trust/v1/schema/schema.go +++ b/pkg/server/api/trust/v1/schema/schema.go @@ -2076,7 +2076,7 @@ type Mutation { input: ExportTrustCenterFileInput! ): ExportTrustCenterFilePayload! @session(required: OPTIONAL) - requestDocumentAccess( + requestDocumentAccess( input: RequestDocumentAccessInput! ): RequestAccessesPayload! @session(required: PRESENT)