diff --git a/api/database/datamodel.graphql b/api/database/datamodel.graphql index 55da2ee34..59a2226f6 100644 --- a/api/database/datamodel.graphql +++ b/api/database/datamodel.graphql @@ -59,7 +59,7 @@ type TeamMembers { team: Team @relation (name: "TeamMembers", onDelete: SET_NULL) role: Role @default(value: MEMBER) status: [TeamMemberStatus!]! - email: String + email: String @unique createdAt: DateTime! updatedAt: DateTime! } diff --git a/api/src/generated/prisma.graphql b/api/src/generated/prisma.graphql index 171d8462a..2ecbd89d3 100644 --- a/api/src/generated/prisma.graphql +++ b/api/src/generated/prisma.graphql @@ -1,5 +1,5 @@ # source: http://localhost:4466 -# timestamp: Thu Sep 27 2018 08:38:09 GMT-0700 (Pacific Daylight Time) +# timestamp: Thu Sep 27 2018 22:50:26 GMT-0700 (Pacific Daylight Time) type AggregateFBStatus { count: Int! @@ -1731,6 +1731,7 @@ input TeamMembersWhereInput { input TeamMembersWhereUniqueInput { id: ID + email: String } enum TeamOrderByInput { diff --git a/api/src/graphql/TeamsConnectionsFragment.js b/api/src/graphql/TeamsConnectionsFragment.js index 89a22a8c4..a7494d8c0 100644 --- a/api/src/graphql/TeamsConnectionsFragment.js +++ b/api/src/graphql/TeamsConnectionsFragment.js @@ -21,10 +21,16 @@ const TEAMS_CONNECTIONS_FRAGMENT = gql`{ } members { role + email member { alias authId } + status { + status + reason + createdAt + } } } } diff --git a/api/src/graphql/TeamsFragment.js b/api/src/graphql/TeamsFragment.js index f243480f2..95a111aff 100644 --- a/api/src/graphql/TeamsFragment.js +++ b/api/src/graphql/TeamsFragment.js @@ -13,17 +13,22 @@ const TEAMS_FRAGMENT = gql`{ createdAt profile { avatar - banner description motto updatedAt } members { role + email member { alias authId } + status { + status + reason + createdAt + } } }` diff --git a/api/src/index.js b/api/src/index.js index 0e56e0e7d..92b24b1e1 100644 --- a/api/src/index.js +++ b/api/src/index.js @@ -214,6 +214,11 @@ const resolvers = { }, async sendMemberInviteSG(parent, { email, teamId }, ctx, info) { const team = await ctx.db.query.team({ where: { id: teamId } }, TEAMS_FRAGMENT) + const addMember = await ctx.db.mutation.upsertTeamMembers({ + where:{email: email}, + create:{role:'MEMBER', email:email, team: {connect: {id: teamId}}, status:{create:{status: 'INVITED', reason: `Invited by ${team.members[0].member.alias}`}}}, + update:{role: 'MEMBER', email: email, team: {connect: {id: teamId}}, status:{create:{status: 'INVITED', reason: `Invite resent by ${team.members[0].member.alias}`}}}}, + `{ id }`) const sendInvite = await sendTeamMemberInvite(email, team) return sendInvite }