xiongzhu 2 سال پیش
والد
کامیت
13f9dbfedf

+ 2 - 1
src/chat/chat.controller.ts

@@ -1,11 +1,12 @@
 import { Controller, Get, Post, Req, Res, Sse, HttpCode } from '@nestjs/common'
-import { ApiTags } from '@nestjs/swagger'
+import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
 import { ChatService } from './chat.service'
 import { Observable } from 'rxjs'
 import { Public } from '../auth/public.decorator'
 
 @ApiTags('chat')
 @Controller('chat')
+@ApiBearerAuth()
 export class ChatController {
     constructor(private readonly openaiService: ChatService) {}
 

+ 1 - 2
src/helpers/configure-swagger-docs.helper.ts

@@ -21,9 +21,8 @@ export function configureSwaggerDocs(app: INestApplication, configService: Confi
             .setTitle('API')
             .setDescription('The API description')
             .setVersion('1.0')
-            .addBearerAuth()
             .addTag('auth')
-            .addTag('users')
+            .addBearerAuth()
             .build()
         const document = SwaggerModule.createDocument(app, config)
         SwaggerModule.setup('/docs', app, document)

+ 7 - 4
src/membership/dto/renew.dto.ts

@@ -1,5 +1,8 @@
-import { IsNotEmpty } from "class-validator"
-
+import { IsNotEmpty } from 'class-validator'
+export enum RenewType {
+    JSAPI = 'JSAPI',
+    WEB = 'WEB'
+}
 export class RenewDto {
     userId?: number
 
@@ -7,7 +10,7 @@ export class RenewDto {
     planId: number
 
     @IsNotEmpty()
-    type: 'JSAPI' | 'WEB'
-    
+    type: RenewType
+
     openid?: string
 }

+ 3 - 0
src/membership/membership.admin.controller.ts

@@ -4,8 +4,11 @@ import { Body, Controller, Get, Post, Req } from '@nestjs/common'
 import { MemberPlanDto } from './dto/memberPlan.dto'
 import { HasRoles } from '../auth/roles.decorator'
 import { Role } from '../model/role.enum'
+import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
 
+@ApiTags('membership.admin')
 @Controller('/admin/membership')
+@ApiBearerAuth()
 @HasRoles(Role.Admin)
 export class MembershipAdminController {
     constructor(private readonly membershipService: MembershipService) {}

+ 52 - 0
src/users/users.admin.controller.ts

@@ -0,0 +1,52 @@
+import {
+    Controller,
+    Put,
+    Get,
+    Body,
+    Param,
+    HttpStatus,
+    NotFoundException,
+    Delete,
+    BadRequestException,
+    Req,
+    Post
+} from '@nestjs/common'
+import { UsersService } from './users.service'
+import { UserProfileDto } from './dto/user-profile.dto'
+import { UserUpdateDto } from './dto/user-update.dto'
+import { IUsers } from './interfaces/users.interface'
+import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
+import { HasRoles } from '../auth/roles.decorator'
+import { Role } from '../model/role.enum'
+
+@ApiTags('users.admin')
+@Controller('users')
+@ApiBearerAuth()
+@HasRoles(Role.Admin)
+export class UsersAdminController {
+    constructor(private readonly usersService: UsersService) {}
+
+    @Get()
+    public async findAllUser(): Promise<IUsers[]> {
+        return this.usersService.findAll()
+    }
+
+    @Put('/:userId')
+    public async updateUser(@Param('userId') userId: string, @Body() userUpdateDto: UserUpdateDto) {
+        try {
+            await this.usersService.updateUser(userId, userUpdateDto)
+
+            return {
+                message: 'User Updated successfully!',
+                status: HttpStatus.OK
+            }
+        } catch (err) {
+            throw new BadRequestException(err, 'Error: User not updated!')
+        }
+    }
+
+    @Delete('/:userId')
+    public async deleteUser(@Param('userId') userId: string): Promise<void> {
+        await this.usersService.deleteUser(userId)
+    }
+}

+ 2 - 26
src/users/users.controller.ts

@@ -15,12 +15,13 @@ import { UsersService } from './users.service'
 import { UserProfileDto } from './dto/user-profile.dto'
 import { UserUpdateDto } from './dto/user-update.dto'
 import { IUsers } from './interfaces/users.interface'
-import { ApiTags } from '@nestjs/swagger'
+import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
 import { HasRoles } from '../auth/roles.decorator'
 import { Role } from '../model/role.enum'
 
 @ApiTags('users')
 @Controller('users')
+@ApiBearerAuth()
 export class UsersController {
     constructor(private readonly usersService: UsersService) {}
 
@@ -29,7 +30,6 @@ export class UsersController {
         return this.usersService.findById(req.user.userId)
     }
 
- 
     @Post('/update')
     public async update(@Body() userProfileDto: UserProfileDto, @Req() req): Promise<any> {
         try {
@@ -44,11 +44,6 @@ export class UsersController {
         }
     }
 
-    @Get()
-    public async findAllUser(): Promise<IUsers[]> {
-        return this.usersService.findAll()
-    }
-
     @Get('/:userId')
     public async findOneUser(@Param('userId') userId: string): Promise<IUsers> {
         return this.usersService.findById(userId)
@@ -67,23 +62,4 @@ export class UsersController {
             status: HttpStatus.OK
         }
     }
-
-    @Put('/:userId')
-    public async updateUser(@Param('userId') userId: string, @Body() userUpdateDto: UserUpdateDto) {
-        try {
-            await this.usersService.updateUser(userId, userUpdateDto)
-
-            return {
-                message: 'User Updated successfully!',
-                status: HttpStatus.OK
-            }
-        } catch (err) {
-            throw new BadRequestException(err, 'Error: User not updated!')
-        }
-    }
-
-    @Delete('/:userId')
-    public async deleteUser(@Param('userId') userId: string): Promise<void> {
-        await this.usersService.deleteUser(userId)
-    }
 }

+ 2 - 1
src/users/users.module.ts

@@ -6,10 +6,11 @@ import { UsersController } from './users.controller'
 import { BcryptService } from '../shared/hashing/bcrypt.service'
 import { HashingService } from '../shared/hashing/hashing.service'
 import { SmsModule } from '../sms/sms.module'
+import { UsersAdminController } from './users.admin.controller'
 
 @Module({
     imports: [SmsModule, TypeOrmModule.forFeature([Users])],
-    controllers: [UsersController],
+    controllers: [UsersController, UsersAdminController],
     providers: [
         {
             provide: HashingService,