Skip to content

Commit 7767c4b

Browse files
authored
feat(be): add multi host broadcasting (#194)
* feat: add multi host broadcasting * fix: fix swagger
1 parent f6feaaf commit 7767c4b

File tree

13 files changed

+57
-36
lines changed

13 files changed

+57
-36
lines changed

apps/server/src/auth/auth.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class AuthController {
2929
maxAge: this.authService.getRefreshTokenExpireTime(),
3030
});
3131

32-
return { accessToken };
32+
return { accessToken, userId };
3333
}
3434

3535
@Post('token')

apps/server/src/auth/swagger/login.swagger.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export const LoginSwagger = () =>
2727
example: {
2828
accessToken:
2929
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjE1LCJuaWNrbmFtZSI6InVzZXIyIiwiZXhwaXJlZEF0IjoiMjAyNC0xMS0xOVQxOTowNzoxOC41ODdaIiwiaWF0IjoxNzMxNDM4NDQ0LCJleHAiOjE3MzE0MzkzNDR9.yqTC5TMMzfSiSiT1OGZCSjH7LjNZ4VPHSv5m_9VGGf4',
30+
userId: 3,
3031
},
3132
},
3233
}),
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
import { BaseDto } from '@src/common/base.dto';
1+
import { BaseDto } from '@common/base.dto';
22
export class GetQuestionDto extends BaseDto {}

apps/server/src/questions/questions.repository.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,15 @@ export class QuestionsRepository {
7373
},
7474
createUserTokenEntity: {
7575
select: {
76-
user: {
77-
select: { nickname: true },
78-
},
76+
user: true,
7977
},
8078
},
8179
replies: {
8280
orderBy: { replyId: 'asc' },
8381
include: {
8482
createUserTokenEntity: {
8583
select: {
86-
user: {
87-
select: { nickname: true },
88-
},
84+
user: true,
8985
},
9086
},
9187
replyLikes: {

apps/server/src/questions/questions.service.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class QuestionsService {
4848
T extends {
4949
createUserToken: string;
5050
likes: { createUserToken: string }[];
51-
createUserTokenEntity?: { user?: { nickname?: string } };
51+
createUserTokenEntity?: { user?: { userId?: number; nickname?: string } };
5252
},
5353
>(
5454
item: T,
@@ -59,8 +59,9 @@ export class QuestionsService {
5959
const likesCount = item.likes.length;
6060
const liked = item.likes.some((like) => like.createUserToken === token);
6161
const nickname = item.createUserTokenEntity?.user?.nickname || '익명';
62+
const userId = item.createUserTokenEntity?.user?.userId || null;
6263

63-
return { isOwner, likesCount, liked, nickname, isHost };
64+
return { isOwner, likesCount, liked, nickname, isHost, userId };
6465
};
6566

6667
return [

apps/server/src/questions/swagger/get-question.swagger.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,37 @@ export const GetQuestionSwagger = () =>
1111
example: {
1212
questions: [
1313
{
14-
questionId: 1,
15-
sessionId: 'd340a812-ec52-45f1-824e-4ccbf338ed73',
16-
body: '해치웠나..',
17-
closed: false,
14+
questionId: 3,
15+
sessionId: '2003544c-d901-4455-818d-d54af3784afa',
16+
body: '질문 수정할래요',
17+
closed: true,
1818
pinned: false,
19-
createdAt: '2024-11-18T10:45:32.392Z',
20-
isOwner: true,
21-
likesCount: 0,
19+
createdAt: '2024-11-18T14:18:22.604Z',
20+
isOwner: false,
21+
likesCount: 4,
2222
liked: false,
23-
nickname: '익명',
23+
nickname: 'user2',
2424
isHost: false,
25+
userId: 3,
2526
replies: [
2627
{
27-
replyId: 13,
28-
body: '다 대상현님 덕분이죠.',
29-
createdAt: '2024-11-18T15:31:30.663Z',
28+
replyId: 4,
29+
body: '답변달기 시도!!',
30+
createdAt: '2024-11-18T14:25:12.879Z',
3031
deleted: false,
31-
isOwner: true,
32+
isOwner: false,
3233
likesCount: 0,
3334
liked: false,
3435
nickname: 'user2',
3536
isHost: false,
37+
userId: 3,
3638
},
3739
],
3840
},
3941
],
40-
isHost: false,
41-
expired: false,
42-
sessionTitle: '돼지호의 세션',
42+
isHost: true,
43+
expired: true,
44+
sessionTitle: '유영재의 세션',
4345
},
4446
},
4547
}),

apps/server/src/replies/replies.repository.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ export class RepliesRepository {
2424
include: {
2525
createUserTokenEntity: {
2626
select: {
27-
user: {
28-
select: { nickname: true },
29-
},
27+
user: true,
3028
},
3129
},
3230
},

apps/server/src/replies/replies.service.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { create } from 'node:domain';
2+
13
import { Injectable } from '@nestjs/common';
24

35
import { CreateReplyDto } from './dto/create-reply.dto';
@@ -19,6 +21,7 @@ export class RepliesService {
1921
const { replyId, body, createdAt, createUserTokenEntity, deleted, questionId } =
2022
await this.repliesRepository.createReply(data);
2123
return {
24+
userId: createUserTokenEntity?.user?.userId || null,
2225
replyId,
2326
body,
2427
createdAt,

apps/server/src/replies/swagger/create-reply.swagger.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,17 @@ export const CreateReplySwagger = () =>
1010
schema: {
1111
example: {
1212
reply: {
13-
replyId: 14,
14-
body: '다 대상현님 덕분이죠.',
15-
createdAt: '2024-11-19T02:47:23.386Z',
13+
userId: 2,
14+
replyId: 217,
15+
body: '역시 지호님이네요 ',
16+
createdAt: '2024-11-27T08:18:29.176Z',
1617
isOwner: true,
1718
likesCount: 0,
1819
liked: false,
1920
deleted: false,
20-
nickname: 'user2',
21-
isHost: false,
21+
questionId: 144,
22+
nickname: 'J291_최정민',
23+
isHost: true,
2224
},
2325
},
2426
},

apps/server/src/sessions-auth/dto/update-host.dto.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ApiProperty } from '@nestjs/swagger';
12
import { Transform } from 'class-transformer';
23
import { IsNotEmpty } from 'class-validator';
34

@@ -6,5 +7,10 @@ import { BaseDto } from '@common/base.dto';
67
export class UpdateHostDto extends BaseDto {
78
@IsNotEmpty()
89
@Transform(({ value }) => value === 'true' || value === true)
10+
@ApiProperty({
11+
example: 'true | false',
12+
description: '호스트 여부 반환',
13+
required: true,
14+
})
915
isHost: boolean;
1016
}

0 commit comments

Comments
 (0)