feat: introducing team (HBE-86) (#36)

This commit is contained in:
Anwarul Islam
2023-03-21 16:35:01 +06:00
committed by GitHub
parent 2244fb0523
commit 8b1d8e6a90
30 changed files with 1733 additions and 439 deletions

View File

@@ -0,0 +1,16 @@
import * as t from "io-ts"
const emailRegex =
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
interface EmailBrand {
readonly Email: unique symbol
}
export const EmailCodec = t.brand(
t.string,
(x): x is t.Branded<string, EmailBrand> => emailRegex.test(x),
"Email"
)
export type Email = t.TypeOf<typeof EmailCodec>

View File

@@ -0,0 +1,12 @@
mutation AcceptTeamInvitation($inviteID: ID!) {
acceptTeamInvitation(inviteID: $inviteID) {
membershipID
role
user {
uid
displayName
photoURL
email
}
}
}

View File

@@ -0,0 +1,20 @@
mutation CreateTeam($userUid: String!, $name: String!) {
createTeamByAdmin(userUid: $userUid, name: $name) {
id
name
members {
membershipID
role
user {
uid
displayName
email
photoURL
}
}
myRole
ownersCount
editorsCount
viewersCount
}
}

View File

@@ -0,0 +1,9 @@
mutation CreateTeamInvitation($inviteeEmail: String!, $inviteeRole: TeamMemberRole!, $teamID: ID!) {
createTeamInvitation(inviteeRole: $inviteeRole, inviteeEmail: $inviteeEmail, teamID: $teamID) {
id
teamID
creatorUid
inviteeEmail
inviteeRole
}
}

View File

@@ -0,0 +1,3 @@
mutation RemoveTeam($uid: ID!) {
deleteTeamByAdmin(teamID: $uid)
}

View File

@@ -0,0 +1,3 @@
mutation RemoveTeamMember($userUid: ID!, $teamID: ID!) {
removeTeamMember(userUid: $userUid, teamID: $teamID)
}

View File

@@ -0,0 +1,6 @@
mutation RenameTeam($uid: ID!, $name: String!) {
renameTeamByAdmin(teamID: $uid, newName: $name) {
id
name
}
}

View File

@@ -0,0 +1,3 @@
mutation RevokeTeamInvitation($inviteID: ID!) {
revokeTeamInvitation(inviteID: $inviteID)
}

View File

@@ -0,0 +1,5 @@
subscription TeamInvitationAdded($teamID: ID!) {
teamInvitationAdded(teamID: $teamID) {
id
}
}

View File

@@ -0,0 +1,3 @@
subscription TeamInvitationRemoved($teamID: ID!) {
teamInvitationRemoved(teamID: $teamID)
}

View File

@@ -0,0 +1,10 @@
mutation UpdateTeamMemberRole(
$newRole: TeamMemberRole!
$userUid: ID!
$teamID: ID!
) {
updateTeamMemberRole(newRole: $newRole, userUid: $userUid, teamID: $teamID) {
membershipID
role
}
}

View File

@@ -0,0 +1,30 @@
query TeamInfo($uid: ID!) {
team(teamID: $uid) {
id
name
teamMembers {
membershipID
role
user {
uid
displayName
email
photoURL
}
}
teamInvitations {
id
inviteeEmail
inviteeRole
}
teamEnvironments {
id
name
}
myRole
ownersCount
editorsCount
viewersCount
}
}

View File

@@ -0,0 +1,11 @@
query TeamList($cursor: ID) {
admin {
allTeams(cursor: $cursor) {
id
name
members {
membershipID
}
}
}
}

View File

@@ -0,0 +1,10 @@
query GetPendingInvites($teamID: ID!) {
team(teamID: $teamID) {
id
teamInvitations {
inviteeRole
inviteeEmail
id
}
}
}