From d94759870e743a5700681bb07250c776ba3ef80f Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Wed, 20 Oct 2021 15:50:05 +0530 Subject: [PATCH] refactor: add error info to send invite results --- .../components/teams/Invite.vue | 20 +++++++++++++------ .../backend/mutations/TeamInvitation.ts | 2 +- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/hoppscotch-app/components/teams/Invite.vue b/packages/hoppscotch-app/components/teams/Invite.vue index 4e191585f..fe4a313e4 100644 --- a/packages/hoppscotch-app/components/teams/Invite.vue +++ b/packages/hoppscotch-app/components/teams/Invite.vue @@ -288,9 +288,10 @@ import { Email, EmailCodec } from "../../helpers/backend/types/Email" import { TeamMemberRole } from "../../helpers/backend/graphql" import { createTeamInvitation, + CreateTeamInvitationErrors, revokeTeamInvitation, } from "../../helpers/backend/mutations/TeamInvitation" -import { useGQLQuery } from "~/helpers/backend/GQLClient" +import { GQLError, useGQLQuery } from "~/helpers/backend/GQLClient" import { GetPendingInvitesDocument, GetPendingInvitesQuery, @@ -374,11 +375,17 @@ const removeNewInvitee = (id: number) => { newInvites.value.splice(id, 1) } +type SendInvitesErrorType = { + email: Email + status: "error" + error: GQLError +} | { + email: Email + status: "success" +} + const sendInvitesResult = ref< - Array<{ - email: Email - status: "error" | "success" - }> + Array >([]) const sendingInvites = ref(false) @@ -418,9 +425,10 @@ const sendInvites = async () => { pipe( el, E.foldW( - () => ({ + (err) => ({ status: "error" as const, email: newInvites.value[i].key as Email, + error: err }), () => ({ status: "success" as const, diff --git a/packages/hoppscotch-app/helpers/backend/mutations/TeamInvitation.ts b/packages/hoppscotch-app/helpers/backend/mutations/TeamInvitation.ts index 0c217bf20..a6007d1bc 100644 --- a/packages/hoppscotch-app/helpers/backend/mutations/TeamInvitation.ts +++ b/packages/hoppscotch-app/helpers/backend/mutations/TeamInvitation.ts @@ -15,7 +15,7 @@ import { } from "../graphql" import { Email } from "../types/Email" -type CreateTeamInvitationErrors = +export type CreateTeamInvitationErrors = | "invalid/email" | "team/invalid_id" | "team/member_not_found"