feat: init invitation wiring

Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
liyasthomas
2021-10-17 16:45:48 +05:30
parent 9af8a24a89
commit 3bdf2baf97
8 changed files with 147 additions and 50 deletions

View File

@@ -1,32 +1,52 @@
import { runMutation } from "../GQLClient";
import { AcceptTeamInvitationDocument, AcceptTeamInvitationMutation, AcceptTeamInvitationMutationVariables, CreateTeamInvitationDocument, CreateTeamInvitationMutation, CreateTeamInvitationMutationVariables, RevokeTeamInvitationDocument, RevokeTeamInvitationMutation, RevokeTeamInvitationMutationVariables, TeamMemberRole } from "../graphql";
import { Email } from "../types/Email";
import { pipe } from "fp-ts/function";
import * as TE from "fp-ts/TaskEither";
import { pipe } from "fp-ts/function"
import * as TE from "fp-ts/TaskEither"
import { runMutation } from "../GQLClient"
import {
AcceptTeamInvitationDocument,
AcceptTeamInvitationMutation,
AcceptTeamInvitationMutationVariables,
CreateTeamInvitationDocument,
CreateTeamInvitationMutation,
CreateTeamInvitationMutationVariables,
RevokeTeamInvitationDocument,
RevokeTeamInvitationMutation,
RevokeTeamInvitationMutationVariables,
TeamMemberRole,
} from "../graphql"
import { Email } from "../types/Email"
type CreateTeamInvitationErrors
= "invalid/email" | "team/invalid_id" | "team/member_not_found" | "team_invite/already_member" | "team_invite/member_has_invite"
type CreateTeamInvitationErrors =
| "invalid/email"
| "team/invalid_id"
| "team/member_not_found"
| "team_invite/already_member"
| "team_invite/member_has_invite"
type RevokeTeamInvitationErrors
= "team/not_required_role" | "team_invite/no_invite_found"
type RevokeTeamInvitationErrors =
| "team/not_required_role"
| "team_invite/no_invite_found"
type AcceptTeamInvitationErrors
= "team_invite/no_invite_found" | "team_invitee/not_invitee" | "team_invite/already_member" | "team_invite/email_do_not_match"
type AcceptTeamInvitationErrors =
| "team_invite/no_invite_found"
| "team_invitee/not_invitee"
| "team_invite/already_member"
| "team_invite/email_do_not_match"
export const createTeamInvitation = (inviteeEmail: Email, inviteeRole: TeamMemberRole, teamID: string) =>
export const createTeamInvitation = (
inviteeEmail: Email,
inviteeRole: TeamMemberRole,
teamID: string
) =>
pipe(
runMutation<
CreateTeamInvitationMutation,
CreateTeamInvitationMutationVariables,
CreateTeamInvitationErrors
>(
CreateTeamInvitationDocument,
{
inviteeEmail,
inviteeRole,
teamID
}
),
>(CreateTeamInvitationDocument, {
inviteeEmail,
inviteeRole,
teamID,
}),
TE.map((x) => x.createTeamInvitation)
)
@@ -35,21 +55,15 @@ export const revokeTeamInvitation = (inviteID: string) =>
RevokeTeamInvitationMutation,
RevokeTeamInvitationMutationVariables,
RevokeTeamInvitationErrors
>(
RevokeTeamInvitationDocument,
{
inviteID
}
)
>(RevokeTeamInvitationDocument, {
inviteID,
})
export const acceptTeamInvitation = (inviteID: string) =>
runMutation<
AcceptTeamInvitationMutation,
AcceptTeamInvitationMutationVariables,
AcceptTeamInvitationErrors
>(
AcceptTeamInvitationDocument,
{
inviteID
}
)
>(AcceptTeamInvitationDocument, {
inviteID,
})