Implement guard on empty full name before NDA is signed

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-03-05 17:07:58 +04:00
parent 6896c1bbb8
commit 97e957f394
19 changed files with 637 additions and 91 deletions

View File

@@ -6,6 +6,14 @@ export class UnAuthenticatedError extends Error {
}
}
export class FullNameRequiredError extends Error {
constructor(message?: string) {
super(message || "FULL_NAME_REQUIRED");
this.name = "FullNameRequiredError";
Object.setPrototypeOf(this, FullNameRequiredError.prototype);
}
}
export class NDASignatureRequiredError extends Error {
constructor(message?: string) {
super(message || "NDA_SIGNATURE_REQUIRED");

View File

@@ -5,12 +5,16 @@ import {
ForbiddenError,
AssumptionRequiredError,
NDASignatureRequiredError,
FullNameRequiredError,
} from "./errors";
import { GraphQLError } from "graphql";
const hasUnauthenticatedError = (error: GraphQLError) =>
error.extensions?.code == "UNAUTHENTICATED";
const hasFullNameRequiredError = (error: GraphQLError) =>
error.extensions?.code == "FULL_NAME_REQUIRED";
const hasAssumptionRequiredError = (error: GraphQLError) =>
error.extensions?.code == "ASSUMPTION_REQUIRED";
@@ -83,6 +87,11 @@ export const makeFetchQuery = (endpoint: string): FetchFunction => {
throw new UnAuthenticatedError(unauthenticatedError.message);
}
const fullNameRequiredError = errors.find(hasFullNameRequiredError);
if (fullNameRequiredError) {
throw new FullNameRequiredError(fullNameRequiredError.message);
}
const assumptionRequiredError = errors.find(hasAssumptionRequiredError);
if (assumptionRequiredError) {
throw new AssumptionRequiredError(assumptionRequiredError.message)