@@ -93,6 +93,34 @@ export const membersRouter = createTRPCRouter({
9393 } ) ,
9494 )
9595 . mutation ( async ( { input, ctx } ) => {
96+ /**
97+ * Create a new organization membership
98+ * - Checks for:
99+ * - scope: organizationMembers:CUD if not only project-role is set, then projectMembers:CUD
100+ * - orgRole is not higher than own role
101+ * - if project role
102+ * - projectRole is not higher than own role
103+ * - entitlement for project roles if projectRole is set
104+ * - project is in org
105+ * - if user exists
106+ * - if org membership exists
107+ * - if only project role is set (orgRole === Role.NONE)
108+ * - create project role
109+ * - audit log
110+ * - return
111+ * - else throw error
112+ * - create org membership
113+ * - audit log
114+ * - if project role is set
115+ * - create project role
116+ * - audit log
117+ * - send email
118+ * - else
119+ * - create membership invitation
120+ * - audit log
121+ * - send email
122+ */
123+
96124 if (
97125 // Require only project-level access rights if no orgRole is set but a projectId is
98126 input . projectId &&
@@ -292,6 +320,9 @@ export const membersRouter = createTRPCRouter({
292320 } ) ,
293321 )
294322 . mutation ( async ( { input, ctx } ) => {
323+ /**
324+ * Delete an organization membership, used in membership table
325+ */
295326 const orgMembership = await ctx . prisma . organizationMembership . findFirst ( {
296327 where : {
297328 orgId : input . orgId ,
@@ -357,6 +388,9 @@ export const membersRouter = createTRPCRouter({
357388 } ) ,
358389 )
359390 . mutation ( async ( { input, ctx } ) => {
391+ /**
392+ * Delete a membership invitation, used in membership_invitation table
393+ */
360394 const invitation = await ctx . prisma . membershipInvitation . findFirst ( {
361395 where : {
362396 orgId : input . orgId ,
@@ -411,6 +445,10 @@ export const membersRouter = createTRPCRouter({
411445 } ) ,
412446 )
413447 . mutation ( async ( { input, ctx } ) => {
448+ /**
449+ * Used by dropdown in membership table to update the organization role of a user
450+ */
451+
414452 throwIfNoOrganizationAccess ( {
415453 session : ctx . session ,
416454 organizationId : input . orgId ,
@@ -481,6 +519,9 @@ export const membersRouter = createTRPCRouter({
481519 } ) ,
482520 )
483521 . mutation ( async ( { input, ctx } ) => {
522+ /**
523+ * Used by dropdown in membership table to update the project role of a user
524+ */
484525 const hasAccess =
485526 hasOrganizationAccess ( {
486527 session : ctx . session ,
0 commit comments