File

src/workspace/workspace-members.controller.ts

Prefix

workspaces/:id/members

Index

Methods

Methods

Async deleteOneWorkspaceMemberForUser
deleteOneWorkspaceMemberForUser(id: string, memberId: string, userId: number)
Decorators :
@Delete('/:memberId')
@ApiOperation({operationId: 'deleteOneWorkspaceMemberForUser', summary: 'Delete a workspace member for the authenticated user'})
@ApiBearerAuth()
@UseGuards(SupabaseGuard)
@ApiNotFoundResponse({description: 'Unable to delete workspace member'})
@ApiBadRequestResponse({description: 'Invalid request'})
@ApiParam({name: 'id', type: 'string'})
@ApiParam({name: 'memberId', type: 'string'})
Parameters :
Name Type Optional
id string No
memberId string No
userId number No
Returns : unknown
Async deleteWorkspaceMembersForUser
deleteWorkspaceMembersForUser(id: string, deleteWorkspaceMembersDto: DeleteWorkspaceMembersDto, userId: number)
Decorators :
@Delete()
@ApiOperation({operationId: 'deleteWorkspaceMembersForUser', summary: 'Deletes workspace members for the authenticated user'})
@ApiBearerAuth()
@UseGuards(SupabaseGuard)
@ApiNotFoundResponse({description: 'Unable to delete workspace members'})
@ApiBadRequestResponse({description: 'Invalid request'})
@ApiBody({type: DeleteWorkspaceMembersDto})
@ApiParam({name: 'id', type: 'string'})
Parameters :
Name Type Optional
id string No
deleteWorkspaceMembersDto DeleteWorkspaceMembersDto No
userId number No
Returns : unknown
Async getWorkspaceMembersForUser
getWorkspaceMembersForUser(id: string, userId: undefined, pageOptionsDto: PageOptionsDto)
Decorators :
@Get()
@ApiOperation({operationId: 'getWorkspaceMembersForUser', summary: 'Gets workspace members for the authenticated user'})
@ApiBearerAuth()
@UseGuards(PassthroughSupabaseGuard)
@ApiOkResponse({type: DbWorkspaceMember})
@ApiNotFoundResponse({description: 'Unable to get user workspace members'})
@ApiBadRequestResponse({description: 'Invalid request'})
Parameters :
Name Type Optional
id string No
userId undefined No
pageOptionsDto PageOptionsDto No
Async updateWorkspaceMemberForUser
updateWorkspaceMemberForUser(id: string, memberId: string, updateWorkspaceMemberDto: UpdateWorkspaceMemberDto, userId: number)
Decorators :
@Patch('/:memberId')
@ApiOperation({operationId: 'updateOneWorkspaceMemberForUser', summary: 'Updates a workspace member for the authenticated user'})
@ApiBearerAuth()
@UseGuards(SupabaseGuard)
@ApiOkResponse({type: DbWorkspaceMember})
@ApiNotFoundResponse({description: 'Unable to update workspace member'})
@ApiUnprocessableEntityResponse({description: 'Unable to process workspace member'})
@ApiBody({type: UpdateWorkspaceMemberDto})
@ApiParam({name: 'id', type: 'string'})
@ApiParam({name: 'memberId', type: 'string'})
Parameters :
Name Type Optional
id string No
memberId string No
updateWorkspaceMemberDto UpdateWorkspaceMemberDto No
userId number No
Async updateWorkspaceMembersForUser
updateWorkspaceMembersForUser(id: string, updateWorkspaceMembersDto: UpdateWorkspaceMembersDto, userId: number)
Decorators :
@Post()
@ApiOperation({operationId: 'updateWorkspaceMembersForUser', summary: 'Updates workspace members for the authenticated user'})
@ApiBearerAuth()
@UseGuards(SupabaseGuard)
@ApiOkResponse({type: DbWorkspaceMember})
@ApiNotFoundResponse({description: 'Unable to update workspace members'})
@ApiUnprocessableEntityResponse({description: 'Unable to process workspace members'})
@ApiBody({type: UpdateWorkspaceMembersDto})
@ApiParam({name: 'id', type: 'string'})
Parameters :
Name Type Optional
id string No
updateWorkspaceMembersDto UpdateWorkspaceMembersDto No
userId number No
import { Body, Controller, Delete, Get, Param, ParseUUIDPipe, Patch, Post, Query, UseGuards } from "@nestjs/common";
import {
  ApiOperation,
  ApiOkResponse,
  ApiNotFoundResponse,
  ApiBearerAuth,
  ApiTags,
  ApiBadRequestResponse,
  ApiUnprocessableEntityResponse,
  ApiParam,
  ApiBody,
} from "@nestjs/swagger";

import { PassthroughSupabaseGuard } from "../auth/passthrough-supabase.guard";
import { PageOptionsDto } from "../common/dtos/page-options.dto";
import { PageDto } from "../common/dtos/page.dto";
import { OptionalUserId, UserId } from "../auth/supabase.user.decorator";
import { SupabaseGuard } from "../auth/supabase.guard";

import { DbWorkspaceMember } from "./entities/workspace-member.entity";
import { WorkspaceMembersService } from "./workspace-members.service";
import { UpdateWorkspaceMemberDto, UpdateWorkspaceMembersDto } from "./dtos/update-workspace-members.dto";
import { DbWorkspace } from "./entities/workspace.entity";
import { DeleteWorkspaceMembersDto } from "./dtos/delete-workspace-member.dto";

@Controller("workspaces/:id/members")
@ApiTags("Workspace members service")
export class WorkspaceMemberController {
  constructor(private readonly workspaceMemberService: WorkspaceMembersService) {}

  @Get()
  @ApiOperation({
    operationId: "getWorkspaceMembersForUser",
    summary: "Gets workspace members for the authenticated user",
  })
  @ApiBearerAuth()
  @UseGuards(PassthroughSupabaseGuard)
  @ApiOkResponse({ type: DbWorkspaceMember })
  @ApiNotFoundResponse({ description: "Unable to get user workspace members" })
  @ApiBadRequestResponse({ description: "Invalid request" })
  async getWorkspaceMembersForUser(
    @Param("id", ParseUUIDPipe) id: string,
    @OptionalUserId() userId: undefined,
    @Query() pageOptionsDto: PageOptionsDto
  ): Promise<PageDto<DbWorkspaceMember>> {
    return this.workspaceMemberService.findAllMembersByWorkspaceIdForUserId(pageOptionsDto, id, userId);
  }

  @Post()
  @ApiOperation({
    operationId: "updateWorkspaceMembersForUser",
    summary: "Updates workspace members for the authenticated user",
  })
  @ApiBearerAuth()
  @UseGuards(SupabaseGuard)
  @ApiOkResponse({ type: DbWorkspaceMember })
  @ApiNotFoundResponse({ description: "Unable to update workspace members" })
  @ApiUnprocessableEntityResponse({ description: "Unable to process workspace members" })
  @ApiBody({ type: UpdateWorkspaceMembersDto })
  @ApiParam({ name: "id", type: "string" })
  async updateWorkspaceMembersForUser(
    @Param("id", ParseUUIDPipe) id: string,
    @Body() updateWorkspaceMembersDto: UpdateWorkspaceMembersDto,
    @UserId() userId: number
  ): Promise<DbWorkspace> {
    return this.workspaceMemberService.updateWorkspaceMembers(updateWorkspaceMembersDto, id, userId);
  }

  @Patch("/:memberId")
  @ApiOperation({
    operationId: "updateOneWorkspaceMemberForUser",
    summary: "Updates a workspace member for the authenticated user",
  })
  @ApiBearerAuth()
  @UseGuards(SupabaseGuard)
  @ApiOkResponse({ type: DbWorkspaceMember })
  @ApiNotFoundResponse({ description: "Unable to update workspace member" })
  @ApiUnprocessableEntityResponse({ description: "Unable to process workspace member" })
  @ApiBody({ type: UpdateWorkspaceMemberDto })
  @ApiParam({ name: "id", type: "string" })
  @ApiParam({ name: "memberId", type: "string" })
  async updateWorkspaceMemberForUser(
    @Param("id", ParseUUIDPipe) id: string,
    @Param("memberId", ParseUUIDPipe) memberId: string,
    @Body() updateWorkspaceMemberDto: UpdateWorkspaceMemberDto,
    @UserId() userId: number
  ): Promise<DbWorkspace> {
    return this.workspaceMemberService.updateOneWorkspaceMember(updateWorkspaceMemberDto, id, memberId, userId);
  }

  @Delete()
  @ApiOperation({
    operationId: "deleteWorkspaceMembersForUser",
    summary: "Deletes workspace members for the authenticated user",
  })
  @ApiBearerAuth()
  @UseGuards(SupabaseGuard)
  @ApiNotFoundResponse({ description: "Unable to delete workspace members" })
  @ApiBadRequestResponse({ description: "Invalid request" })
  @ApiBody({ type: DeleteWorkspaceMembersDto })
  @ApiParam({ name: "id", type: "string" })
  async deleteWorkspaceMembersForUser(
    @Param("id", ParseUUIDPipe) id: string,
    @Body() deleteWorkspaceMembersDto: DeleteWorkspaceMembersDto,
    @UserId() userId: number
  ) {
    return this.workspaceMemberService.deleteWorkspaceMembers(deleteWorkspaceMembersDto, id, userId);
  }

  @Delete("/:memberId")
  @ApiOperation({
    operationId: "deleteOneWorkspaceMemberForUser",
    summary: "Delete a workspace member for the authenticated user",
  })
  @ApiBearerAuth()
  @UseGuards(SupabaseGuard)
  @ApiNotFoundResponse({ description: "Unable to delete workspace member" })
  @ApiBadRequestResponse({ description: "Invalid request" })
  @ApiParam({ name: "id", type: "string" })
  @ApiParam({ name: "memberId", type: "string" })
  async deleteOneWorkspaceMemberForUser(
    @Param("id", ParseUUIDPipe) id: string,
    @Param("memberId", ParseUUIDPipe) memberId: string,
    @UserId() userId: number
  ) {
    return this.workspaceMemberService.deleteOneWorkspaceMember(id, memberId, userId);
  }
}

results matching ""

    No results matching ""