Skip to content

Commit c967193

Browse files
authored
Feat/#11 (#25)
* feat: userDTO - mypageInfoDTO * feat: mypageInfo shareTogether sequelize * feat: shareTogetherQuery 수정 * feat: GET user/mypage/info api 완료 * feat: 마이페이지 challenge 스크랩 api 완료 * feat: 마이페이지 내가 쓴 글 api 완료 * feat: 내가 쓴 댓글 api 완료 * feat: 비밀번호 수정 api 완료 * fix: comment model 수정 * feat: 마이페이지 회고 스크랩 취소 * feat: 마이페이지 회원정보 수정 api * fix: 코드 형식 수정 및 오류 수정 * fix: userDTO 주석 삭제
1 parent 5977dee commit c967193

File tree

17 files changed

+1485
-844
lines changed

17 files changed

+1485
-844
lines changed

.vscode/launch.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"type": "pwa-chrome",
9+
"request": "launch",
10+
"name": "Launch Chrome against localhost",
11+
"url": "http://localhost:8080",
12+
"webRoot": "${workspaceFolder}"
13+
}
14+
]
15+
}

src/DTO/adminDTO.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace adminDTO {
77
challengeEndDT: Date;
88
generation: Number;
99
limitNum: Number;
10-
img: String;
10+
img: string;
1111
createdDT: Date;
1212
applyNum: Number;
1313
}
@@ -39,7 +39,7 @@ namespace adminDTO {
3939
}
4040

4141
export interface adminRegistResDTO {
42-
img: String;
42+
img: string;
4343
title: String;
4444
registerStartDT: Date;
4545
registerEndDT: Date;

src/DTO/commentDTO.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { userHeaderDTO } from "./userDTO";
2-
31
namespace commentDTO {
42
export interface IComment {
53
id: number;

src/DTO/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export { default as adminDTO } from "./adminDTO";
22
export { default as authDTO } from "./authDTO";
3+
export { default as userDTO } from "./userDTO";
34
export { default as challengeDTO } from "./challengeDTO";
45
export { default as concertDTO } from "./concertDTO";
56
export { default as commentDTO } from "./commentDTO";

src/DTO/userDTO.ts

Lines changed: 128 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,142 @@
1-
import mongoose, { Document } from "mongoose";
2-
import { IComment } from "../interfaces/IComment";
3-
import { IUser } from "../interfaces/IUser";
4-
import { IConcert } from "../interfaces/IConcert";
5-
import { IChallenge } from "../interfaces/IChallenge";
6-
import { IChallengeDTO } from "./challengeDTO";
7-
import { IConcertDTO } from "./concertDTO";
8-
9-
export interface userHeaderDTO {
10-
_id?: mongoose.Schema.Types.ObjectId;
11-
nickname?: string;
12-
img?: string;
13-
}
1+
import { DateDataType } from "sequelize/types";
2+
import { commentDTO } from ".";
143

15-
export interface registerReqDTO {
16-
challengeCNT: number;
17-
}
4+
namespace userDTO {
5+
// 합치면 challengeDTO 및 concertDTO 에서 받아와서 써도 될 듯!
6+
// 일단 여기 써놓고 씁니다아
7+
export interface challengeResDTO {
8+
id: number;
9+
generation: number;
10+
createdAt: Date;
11+
updatedAt: Date;
12+
userID: number;
13+
nickname: string;
14+
img: string;
15+
good: string;
16+
bad: string;
17+
learn: string;
18+
interest: string[];
19+
likeNum: number;
20+
scrapNum: number;
21+
commentNum: number;
22+
comment: commentDTO.IComment[];
23+
isLike?: Boolean;
24+
isScrap?: Boolean;
25+
}
1826

19-
export interface ILearnMySelfAchieve {
20-
percent: number;
21-
totalNum: number;
22-
completeNum: number;
23-
startDT: Date;
24-
endDT: Date;
25-
generation: Number;
26-
}
27+
export interface challengeScrapResDTO {
28+
mypageChallengeScrap: challengeResDTO[];
29+
totalScrapNum: number;
30+
}
2731

28-
export interface IShareTogether {
29-
_id: mongoose.Schema.Types.ObjectId;
30-
title: string;
31-
}
32+
export interface concertResDTO {
33+
id: number;
34+
createdAt: Date;
35+
updatedAt: Date;
36+
userID: number;
37+
nickname: string;
38+
authorNickname: string;
39+
title: string;
40+
videoLink: string;
41+
img: string;
42+
imgThumbnail: string;
43+
text: string;
44+
interest: string[];
45+
hashtag: string[];
46+
isDeleted: Boolean;
47+
isNotice: Boolean;
48+
likeNum: number;
49+
scrapNum: number;
50+
commentNum: number;
51+
comment: commentDTO.IComment[];
52+
isLike?: Boolean;
53+
isScrap?: Boolean;
54+
}
3255

33-
export interface ICouponBook {
34-
welcomeBadge: Boolean;
35-
firstJoinBadge: Boolean;
36-
firstWriteBadge: Boolean;
37-
oneCommentBadge: Boolean;
38-
fiveCommentBadge: Boolean;
39-
oneLikeBadge: Boolean;
40-
fiveLikeBadge: Boolean;
41-
loginBadge: Boolean;
42-
marketingBadge: Boolean;
43-
learnMySelfScrapBadge: Boolean;
44-
firstReplyBadge: Boolean;
45-
concertScrapBadge: Boolean;
46-
challengeBadge: Number;
47-
}
56+
export interface concertScrapResDTO {
57+
mypageConcertScrap: concertResDTO[];
58+
totalScrapNum: number;
59+
}
4860

49-
export interface mypageInfoResDTO {
50-
nickname?: string;
51-
learnMyselfAchieve: ILearnMySelfAchieve | null;
52-
shareTogether: IShareTogether[] | null;
53-
couponBook: ICouponBook;
54-
}
61+
export interface commentResDTO {
62+
id: number;
63+
text: string;
64+
post: string;
65+
createdAt: Date;
66+
}
5567

56-
export interface concertScrapResDTO {
57-
mypageConcertScrap: IConcertDTO[];
58-
totalScrapNum: number;
59-
}
68+
export interface myCommentsResDTO {
69+
comments: commentResDTO[];
70+
commentNum: number;
71+
}
6072

61-
export interface challengeScrapResDTO {
62-
mypageChallengeScrap: IChallengeDTO[];
63-
totalScrapNum: number;
64-
}
73+
export interface newPwReqDTO {
74+
password: string;
75+
newPassword: string;
76+
}
6577

66-
export interface myWritingsResDTO {
67-
mypageChallengeScrap: (IChallenge &
68-
Document<IUser, mongoose.Schema.Types.ObjectId> &
69-
Document<IComment, mongoose.Schema.Types.ObjectId>)[];
70-
totalScrapNum: number;
71-
}
78+
export interface deleteCommentsReqDTO {
79+
commentID: number[];
80+
}
7281

73-
export interface myCommentsResDTO {
74-
comments: IComment[];
75-
commentNum: number;
76-
}
82+
export interface registerReqDTO {
83+
challengeNum: number;
84+
}
7785

78-
export interface delMyCommentReqDTO {
79-
userID: { id: mongoose.Schema.Types.ObjectId };
80-
commentID: mongoose.Schema.Types.ObjectId[];
81-
}
86+
export interface userInfoReqDTO {
87+
nickname: string;
88+
interest: string[];
89+
isMarketing: Boolean;
90+
img?: File;
91+
}
8292

83-
export interface userInfoResDTO {
84-
interest: string[];
85-
marpolicy: Boolean;
86-
img?: string;
87-
_id: mongoose.Schema.Types.ObjectId;
88-
email: string;
89-
nickname?: string;
90-
}
93+
export interface mypageInfoChallengeResDTO {
94+
percent: number;
95+
totalNum: number;
96+
completeNum: number;
97+
startDT: Date;
98+
endDT: Date;
99+
generation: number;
100+
}
91101

92-
export interface userInfoReqDTO {
93-
interest: string;
94-
marpolicy: string;
95-
img?: File;
96-
nickname?: string;
97-
}
102+
export interface mypageInfoConcertResDTO {
103+
id: number;
104+
title: string;
105+
}
98106

99-
export interface newPwReqDTO {
100-
password: string;
101-
newPassword: string;
102-
userID: { id: mongoose.Schema.Types.ObjectId };
107+
export interface mypageInfoBadgeResDTO {
108+
welcomeBadge: Boolean;
109+
firstJoinBadge: Boolean;
110+
firstWriteBadge: Boolean;
111+
oneCommentBadge: Boolean;
112+
fiveCommentBadge: Boolean;
113+
oneLikeBadge: Boolean;
114+
fiveLikeBadge: Boolean;
115+
loginBadge: Boolean;
116+
marketingBadge: Boolean;
117+
learnMySelfScrapBadge: Boolean;
118+
firstReplyBadge: Boolean;
119+
concertScrapBadge: Boolean;
120+
challengeBadge: number;
121+
}
122+
123+
export interface mypageInfoResDTO {
124+
nickname: string;
125+
learnMyselfAchieve: mypageInfoChallengeResDTO | null;
126+
shareTogether: mypageInfoConcertResDTO[] | null;
127+
couponBook: mypageInfoBadgeResDTO;
128+
}
129+
130+
export interface userInfoResDTO {
131+
interest: string[];
132+
isMarketing: Boolean;
133+
img: string;
134+
id: number;
135+
email: string;
136+
nickname: string;
137+
}
138+
139+
export interface mypageConcertResDTO {}
103140
}
141+
142+
export default userDTO;

src/controller/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export { default as authController } from "./auth";
2+
export { default as userController } from "./user";
23
export { default as challengeController } from "./challenge";
34
export { default as concertController } from "./concert";

0 commit comments

Comments
 (0)