diff --git a/dataconnect/connector/teamMember/mutations.gql b/dataconnect/connector/teamMember/mutations.gql new file mode 100644 index 00000000..e8ebfcc7 --- /dev/null +++ b/dataconnect/connector/teamMember/mutations.gql @@ -0,0 +1,43 @@ +mutation CreateTeamMember( + $teamId: UUID!, + $memberName: String!, + $email: String!, + $role: TeamMemberRole, + $isActive: Boolean +) @auth(level: USER) { + teamMember_insert( + data: { + teamId: $teamId + memberName: $memberName + email: $email + role: $role + isActive: $isActive + } + ) +} + +mutation UpdateTeamMember( + $id: UUID!, + $teamId: UUID, + $memberName: String, + $email: String, + $role: TeamMemberRole, + $isActive: Boolean +) @auth(level: USER) { + teamMember_update( + id: $id, + data: { + teamId: $teamId + memberName: $memberName + email: $email + role: $role + isActive: $isActive + } + ) +} + +mutation DeleteTeamMember( + $id: UUID! +) @auth(level: USER) { + teamMember_delete(id: $id) +} diff --git a/dataconnect/connector/teamMember/queries.gql b/dataconnect/connector/teamMember/queries.gql new file mode 100644 index 00000000..215ed360 --- /dev/null +++ b/dataconnect/connector/teamMember/queries.gql @@ -0,0 +1,51 @@ +query listTeamMember @auth(level: USER) { + teamMembers { + id + teamId + memberName + email + role + isActive + } +} + +query getTeamMemberById( + $id: UUID! +) @auth(level: USER) { + teamMember(id: $id) { + id + teamId + memberName + email + role + isActive + createdDate + updatedDate + createdBy + } +} + +query filterTeamMember( + $teamId: UUID, + $memberName: String, + $email: String, + $role: TeamMemberRole, + $isActive: Boolean +) @auth(level: USER) { + teamMembers( + where: { + teamId: { eq: $teamId } + memberName: { eq: $memberName } + email: { eq: $email } + role: { eq: $role } + isActive: { eq: $isActive } + } + ) { + id + teamId + memberName + email + role + isActive + } +} diff --git a/dataconnect/schema/teamMember.gql b/dataconnect/schema/teamMember.gql new file mode 100644 index 00000000..f58eaeec --- /dev/null +++ b/dataconnect/schema/teamMember.gql @@ -0,0 +1,18 @@ +enum TeamMemberRole { + ADMIN + MANAGER + MEMBER + VIEWER +} + +type TeamMember @table(name: "team_members") { + id: UUID! @default(expr: "uuidV4()") + teamId: UUID! + memberName: String! + email: String! + role: TeamMemberRole + isActive: Boolean @default(expr: "true") + createdDate: Timestamp @default(expr: "request.time") + updatedDate: Timestamp @default(expr: "request.time") + createdBy: String @default(expr: "auth.uid") +}