feat: init invitation wiring
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
@@ -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,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user