From cea78aa8d060a6bc3de67dbbb7da1551c599ce50 Mon Sep 17 00:00:00 2001 From: richarjiang Date: Tue, 7 Apr 2026 09:43:45 +0800 Subject: [PATCH] feat(server): add admin membership management endpoints Co-Authored-By: Claude Opus 4.6 --- packages/server/src/user/user.controller.ts | 27 +++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/server/src/user/user.controller.ts b/packages/server/src/user/user.controller.ts index 552da0f..72a174e 100644 --- a/packages/server/src/user/user.controller.ts +++ b/packages/server/src/user/user.controller.ts @@ -2,7 +2,9 @@ import { Controller, Get, Put, + Delete, Body, + Param, Query, UseGuards, } from '@nestjs/common' @@ -13,6 +15,7 @@ import { Roles } from '../auth/roles.decorator' import { CurrentUser } from '../common/decorators/current-user.decorator' import { UserService } from './user.service' import { UpdateProfileDto } from './dto/update-profile.dto' +import { UpdateUserMembershipDto } from './dto/update-user-membership.dto' const VALID_CARD_TYPES = new Set(Object.values(CardTypeCategory)) @@ -61,4 +64,28 @@ export class UserController { validCardType, ) } + + @Get('admin/members/:userId/membership') + @UseGuards(RolesGuard) + @Roles(UserRole.ADMIN) + getUserMembership(@Param('userId') userId: string) { + return this.userService.getUserMembership(userId) + } + + @Put('admin/members/:userId/membership') + @UseGuards(RolesGuard) + @Roles(UserRole.ADMIN) + updateUserMembership( + @Param('userId') userId: string, + @Body() dto: UpdateUserMembershipDto, + ) { + return this.userService.updateUserMembership(userId, dto) + } + + @Delete('admin/members/:userId/membership') + @UseGuards(RolesGuard) + @Roles(UserRole.ADMIN) + deleteUserMembership(@Param('userId') userId: string) { + return this.userService.deleteUserMembership(userId) + } }