Skip to content

Commit fae0098

Browse files
committed
user block,report 응답 수정
1 parent 0a34818 commit fae0098

6 files changed

+33
-39
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
import { ApiProperty } from '@nestjs/swagger';
22
import { IsNotEmpty, IsNumber, IsString } from 'class-validator';
33

4-
export class CreateUserBlockDto {
4+
export class UserBlockRequest {
55
@ApiProperty({ example: 1, description: '차단한 사람' })
66
@IsNumber()
77
@IsNotEmpty()
8-
fromUserId!: number;
8+
requesterId!: number;
99

1010
@ApiProperty({ example: 2, description: '차단 당한 사람' })
1111
@IsNumber()
1212
@IsNotEmpty()
13-
toUserId!: number;
13+
targetId!: number;
1414

15-
@ApiProperty({ example: 'block', description: '차단하고 싶으면 block, 안 하고 싶으면 unblock' })
15+
@ApiProperty({
16+
example: 'block',
17+
description: '차단하고 싶으면 block, 안 하고 싶으면 unblock',
18+
})
1619
@IsString()
1720
@IsNotEmpty()
1821
action!: 'block' | 'unblock';
19-
}
22+
}

src/user-block/user-block.controller.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Body, Controller, Post, Req, UseGuards } from '@nestjs/common';
22
import { UserBlockService } from './user-block.service';
33
import { CreateBlockUserSwagger } from './user-block.swagget';
44
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
5-
import { CreateUserBlockDto } from './dtos/user-block.dto';
5+
import { UserBlockRequest } from './dtos/user-block.request';
66
import { BaseResponse } from 'src/common/response/dto';
77
import { AuthGuard } from 'src/auth/guards/jwt.auth.guard';
88
import { Request } from 'express';
@@ -17,13 +17,10 @@ export class UserBlockController {
1717
@Post()
1818
@CreateBlockUserSwagger('유저 차단하기 API')
1919
async createUserBlock(
20-
@Body() createUserBlockDto: CreateUserBlockDto,
20+
@Body() createUserBlockDto: UserBlockRequest,
2121
@Req() req: Request,
2222
): Promise<BaseResponse<null>> {
23-
const fromUserId = req.user['id'];
24-
25-
createUserBlockDto.fromUserId = fromUserId;
26-
23+
createUserBlockDto.requesterId = req.user.id;
2724
const resultCode =
2825
await this.userBlockService.createBlock(createUserBlockDto);
2926

src/user-block/user-block.service.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
22
import { InjectRepository } from '@nestjs/typeorm';
33
import { UserBlock } from 'src/common/entities/user-block.entity';
44
import { Repository } from 'typeorm';
5-
import { CreateUserBlockDto } from './dtos/user-block.dto';
5+
import { UserBlockRequest } from './dtos/user-block.request';
66
import { UserService } from 'src/user/user.service';
77
import {
88
DataNotFoundException,
@@ -29,14 +29,14 @@ export class UserBlockService {
2929
return blockedUsers.map((block) => block.target.id);
3030
}
3131

32-
async createBlock(createUserBlockDto: CreateUserBlockDto): Promise<string> {
33-
const { fromUserId, toUserId, action } = createUserBlockDto;
32+
async createBlock(createUserBlockDto: UserBlockRequest): Promise<string> {
33+
const { requesterId, targetId, action } = createUserBlockDto;
3434

3535
const fromUser = await this.userService.findByFields({
36-
where: { id: fromUserId, status: StatusEnum.ACTIVATED },
36+
where: { id: requesterId, status: StatusEnum.ACTIVATED },
3737
});
3838
const toUser = await this.userService.findByFields({
39-
where: { id: toUserId, status: StatusEnum.ACTIVATED },
39+
where: { id: targetId, status: StatusEnum.ACTIVATED },
4040
});
4141

4242
if (!fromUser || !toUser) {
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import { ApiProperty } from '@nestjs/swagger';
22
import { IsNotEmpty, IsNumber, IsString, MinLength } from 'class-validator';
33

4-
export class CreateUserReportDto {
4+
export class UserReportRequest {
55
@ApiProperty({ example: 1, description: '신고한 사람' })
66
@IsNumber()
77
@IsNotEmpty()
8-
fromUserId!: number;
8+
requesterId!: number;
99

1010
@ApiProperty({ example: 2, description: '신고당한 사람' })
1111
@IsNumber()
1212
@IsNotEmpty()
13-
toUserId!: number;
13+
targetId!: number;
1414

1515
@ApiProperty({ example: '질척거림', description: '신고 사유' })
1616
@IsString()
1717
reason!: string;
18-
}
18+
}

src/user-report/user-report.controller.ts

+6-11
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { Body, Controller, Post, Req, UseGuards } from '@nestjs/common';
22
import { UserReportService } from './user-report.service';
33
import { PostUserReportSwagger } from './user-report.swagger';
44
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
5-
import { CreateUserReportDto } from './dto/user-report.dto';
5+
import { UserReportRequest } from './dto/user-report.request';
66
import { BaseResponse } from 'src/common/response/dto';
7-
import { AuthGuard } from 'src/auth/guards/jwt.auth.guard';
7+
import { AuthGuard } from 'src/auth/guards/jwt.auth.guard';
88
import { Request } from 'express';
99
import { UnauthorizedException } from 'src/common/exception/service.exception';
1010

@@ -18,18 +18,13 @@ export class UserReportController {
1818
@Post()
1919
@PostUserReportSwagger('유저 신고하기 API')
2020
async postUserReport(
21-
@Body() createUserReportDto: CreateUserReportDto,
22-
@Req() req: Request
21+
@Body() createUserReportDto: UserReportRequest,
22+
@Req() req: Request,
2323
): Promise<BaseResponse<null>> {
24-
const fromUserId = req.user['id'];
25-
2624
// jwt 유저와 신고할 유저가 다른 경우
27-
if (fromUserId != createUserReportDto.fromUserId) {
25+
if (req.user.id != createUserReportDto.requesterId) {
2826
throw UnauthorizedException('신고 권한이 없습니다.');
2927
}
30-
31-
createUserReportDto.fromUserId = fromUserId;
32-
3328
await this.userReportService.createReport(createUserReportDto);
3429

3530
return new BaseResponse<null>(true, 'USER_REPORTED_SUCCESS', null);
@@ -40,4 +35,4 @@ export class UserReportController {
4035
TODO
4136
- userReport 중복 생성
4237
- jwt 인증 받은 사람이 아니더라도 신고가 됨 -> 인가
43-
*/
38+
*/

src/user-report/user-report.service.ts

+7-8
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
22
import { InjectRepository } from '@nestjs/typeorm';
33
import { Repository } from 'typeorm';
44
import { UserReport } from '../common/entities/user-report.entity';
5-
import { CreateUserReportDto } from '../user-report/dto/user-report.dto';
5+
import { UserReportRequest } from './dto/user-report.request';
66
import {
77
DataNotFoundException,
88
InvalidInputValueException,
@@ -18,14 +18,14 @@ export class UserReportService {
1818
private readonly userService: UserService,
1919
) {}
2020

21-
async createReport(createUserReportDto: CreateUserReportDto): Promise<void> {
22-
const { fromUserId, toUserId, reason } = createUserReportDto;
21+
async createReport(createUserReportDto: UserReportRequest): Promise<void> {
22+
const { requesterId, targetId, reason } = createUserReportDto;
2323

2424
const fromUser = await this.userService.findByFields({
25-
where: { id: fromUserId, status: StatusEnum.ACTIVATED },
25+
where: { id: requesterId, status: StatusEnum.ACTIVATED },
2626
});
2727
const toUser = await this.userService.findByFields({
28-
where: { id: toUserId, status: StatusEnum.ACTIVATED },
28+
where: { id: targetId, status: StatusEnum.ACTIVATED },
2929
});
3030

3131
if (!fromUser || !toUser) {
@@ -35,8 +35,8 @@ export class UserReportService {
3535
// 중복 신고 확인
3636
const existingReport = await this.userReportRepository
3737
.createQueryBuilder('report')
38-
.where('report.fromUser = :fromUserId', { fromUserId })
39-
.andWhere('report.toUser = :toUserId', { toUserId })
38+
.where('report.fromUser = :requesterId', { requesterId })
39+
.andWhere('report.toUser = :targetId', { targetId })
4040
.andWhere('report.reason = :reason', { reason })
4141
.getOne();
4242

@@ -49,7 +49,6 @@ export class UserReportService {
4949
toUser,
5050
reason,
5151
createdAt: new Date(),
52-
updatedAt: new Date(),
5352
status: StatusEnum.ACTIVATED,
5453
});
5554

0 commit comments

Comments
 (0)