feat: introducing team (HBE-86) (#36)
This commit is contained in:
16
packages/hoppscotch-sh-admin/src/helpers/backend/Email.ts
Normal file
16
packages/hoppscotch-sh-admin/src/helpers/backend/Email.ts
Normal 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>
|
||||
@@ -0,0 +1,12 @@
|
||||
mutation AcceptTeamInvitation($inviteID: ID!) {
|
||||
acceptTeamInvitation(inviteID: $inviteID) {
|
||||
membershipID
|
||||
role
|
||||
user {
|
||||
uid
|
||||
displayName
|
||||
photoURL
|
||||
email
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
mutation CreateTeamInvitation($inviteeEmail: String!, $inviteeRole: TeamMemberRole!, $teamID: ID!) {
|
||||
createTeamInvitation(inviteeRole: $inviteeRole, inviteeEmail: $inviteeEmail, teamID: $teamID) {
|
||||
id
|
||||
teamID
|
||||
creatorUid
|
||||
inviteeEmail
|
||||
inviteeRole
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
mutation RemoveTeam($uid: ID!) {
|
||||
deleteTeamByAdmin(teamID: $uid)
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
mutation RemoveTeamMember($userUid: ID!, $teamID: ID!) {
|
||||
removeTeamMember(userUid: $userUid, teamID: $teamID)
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
mutation RenameTeam($uid: ID!, $name: String!) {
|
||||
renameTeamByAdmin(teamID: $uid, newName: $name) {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
mutation RevokeTeamInvitation($inviteID: ID!) {
|
||||
revokeTeamInvitation(inviteID: $inviteID)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
subscription TeamInvitationAdded($teamID: ID!) {
|
||||
teamInvitationAdded(teamID: $teamID) {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
subscription TeamInvitationRemoved($teamID: ID!) {
|
||||
teamInvitationRemoved(teamID: $teamID)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
mutation UpdateTeamMemberRole(
|
||||
$newRole: TeamMemberRole!
|
||||
$userUid: ID!
|
||||
$teamID: ID!
|
||||
) {
|
||||
updateTeamMemberRole(newRole: $newRole, userUid: $userUid, teamID: $teamID) {
|
||||
membershipID
|
||||
role
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
query TeamList($cursor: ID) {
|
||||
admin {
|
||||
allTeams(cursor: $cursor) {
|
||||
id
|
||||
name
|
||||
members {
|
||||
membershipID
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
query GetPendingInvites($teamID: ID!) {
|
||||
team(teamID: $teamID) {
|
||||
id
|
||||
teamInvitations {
|
||||
inviteeRole
|
||||
inviteeEmail
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user