diff --git a/server/src/database/user.repository.ts b/server/src/database/user.repository.ts index d0cadc58..68b35a37 100644 --- a/server/src/database/user.repository.ts +++ b/server/src/database/user.repository.ts @@ -9,8 +9,8 @@ import { UserDuplicateNicknameException, UserNotFoundException, } from '../exception/user.exception'; -import { SearchUserListDto } from 'src/domain/user/dto/search-user-list.dto'; import { SEARCH_USER_LIMIT } from '../constants/pagination.constants'; +import { SearchUserListDto } from 'src/domain/user/dto/request.dto'; @Injectable() export class UserRepository { diff --git a/server/src/domain/user/dto/get-update-password.dto.ts b/server/src/domain/user/dto/get-update-password.dto.ts deleted file mode 100644 index 6f5736f2..00000000 --- a/server/src/domain/user/dto/get-update-password.dto.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { IsNotEmpty, IsString, Matches } from 'class-validator'; - -export class GetUserUpdatePasswordDto { - @IsNotEmpty() - @IsString() - @Matches(/^[a-zA-Z\d!@#$%^&*()-_=+]{6,16}$/) - prevPassword: string; - - @IsNotEmpty() - @IsString() - @Matches(/^[a-zA-Z\d!@#$%^&*()-_=+]{6,16}$/) - newPassword: string; -} diff --git a/server/src/domain/user/dto/request.dto.ts b/server/src/domain/user/dto/request.dto.ts new file mode 100644 index 00000000..b8f57609 --- /dev/null +++ b/server/src/domain/user/dto/request.dto.ts @@ -0,0 +1,79 @@ +import { + IsString, + MaxLength, + IsNotEmpty, + Matches, + IsByteLength, + IsOptional, + IsEmail, + IsNumber, +} from 'class-validator'; + +export class UserUpdateDto { + @IsString() + @IsOptional() + @MaxLength(500) + bio: string; + + @IsOptional() + @IsNotEmpty() + @IsString() + @Matches(/^[a-zA-Zㄱ-ㅎㅏ-ㅣ가-힣\d_]{1,16}$/) + @IsByteLength(1, 16) + nickname: string; +} +export class UserProfileDto { + @IsNotEmpty() + @IsString() + userid: string; + + @IsNotEmpty() + @IsString() + nickname: string; + + @IsEmail() + @IsNotEmpty() + email: string; + + @IsNotEmpty() + @IsString() + profileimg = ''; + + @IsNotEmpty() + @IsString() + bio = ''; + + @IsNotEmpty() + @IsNumber() + postcount: number; + + @IsNotEmpty() + @IsNumber() + follower: number; + + @IsNotEmpty() + @IsNumber() + following: number; + + @IsNotEmpty() + state: boolean; +} +export class SearchUserListDto { + @IsString() + keyword = ''; + + @IsString() + @IsOptional() + next = ''; +} +export class GetUserUpdatePasswordDto { + @IsNotEmpty() + @IsString() + @Matches(/^[a-zA-Z\d!@#$%^&*()-_=+]{6,16}$/) + prevPassword: string; + + @IsNotEmpty() + @IsString() + @Matches(/^[a-zA-Z\d!@#$%^&*()-_=+]{6,16}$/) + newPassword: string; +} diff --git a/server/src/domain/user/dto/search-user-list.dto.ts b/server/src/domain/user/dto/search-user-list.dto.ts deleted file mode 100644 index dbf56205..00000000 --- a/server/src/domain/user/dto/search-user-list.dto.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { IsOptional, IsNumber, IsString } from 'class-validator'; -import { Transform } from 'class-transformer'; -export class SearchUserListDto { - @IsString() - keyword = ''; - - @IsString() - @IsOptional() - next = ''; -} diff --git a/server/src/domain/user/dto/user-profile.dto.ts b/server/src/domain/user/dto/user-profile.dto.ts deleted file mode 100644 index 3975dd3b..00000000 --- a/server/src/domain/user/dto/user-profile.dto.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Transform } from 'class-transformer'; -import { IsString, IsNotEmpty, IsEmail, IsNumber } from 'class-validator'; - -export class UserProfileDto { - @IsNotEmpty() - @IsString() - userid: string; - - @IsNotEmpty() - @IsString() - nickname: string; - - @IsEmail() - @IsNotEmpty() - email: string; - - @IsNotEmpty() - @IsString() - profileimg = ''; - - @IsNotEmpty() - @IsString() - bio = ''; - - @IsNotEmpty() - @Transform(({ value }) => parseInt(value)) - @IsNumber() - postcount: number; - - @IsNotEmpty() - @Transform(({ value }) => parseInt(value)) - @IsNumber() - follower: number; - - @IsNotEmpty() - @Transform(({ value }) => parseInt(value)) - @IsNumber() - following: number; - - @IsNotEmpty() - state: boolean; -} diff --git a/server/src/domain/user/dto/user-update.dto.ts b/server/src/domain/user/dto/user-update.dto.ts deleted file mode 100644 index 981d94ab..00000000 --- a/server/src/domain/user/dto/user-update.dto.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { - IsString, - MaxLength, - IsNotEmpty, - Matches, - IsByteLength, - IsOptional, -} from 'class-validator'; - -export class UserUpdateDto { - @IsString() - @IsOptional() - @MaxLength(500) - bio: string; - - @IsOptional() - @IsNotEmpty() - @IsString() - @Matches(/^[a-zA-Zㄱ-ㅎㅏ-ㅣ가-힣\d_]{1,16}$/) - @IsByteLength(1, 16) - nickname: string; -} diff --git a/server/src/domain/user/user.controller.ts b/server/src/domain/user/user.controller.ts index 0ebd8425..2955052e 100644 --- a/server/src/domain/user/user.controller.ts +++ b/server/src/domain/user/user.controller.ts @@ -18,18 +18,20 @@ import { } from '@nestjs/common'; import { UserService } from './user.service'; import { User } from 'src/database/user.schema'; -import { UserUpdateDto } from './dto/user-update.dto'; import { UpdateAuthGuard } from 'src/guard/update-user.guard'; import { JwtAuthGuard } from 'src/guard/jwt-auth.guard'; import { GetUser } from 'src/decorator/get-user.decorator'; import { NcloudService } from 'src/domain/ncloud/ncloud.service'; import { FileInterceptor } from '@nestjs/platform-express'; -import { GetUserUpdatePasswordDto } from './dto/get-update-password.dto'; import { MoheyumInterceptor } from 'src/cache/cache.interceptor'; import { CacheEvict } from 'src/cache/cache-evict.decorator'; import { CacheIndividual } from 'src/cache/cahce-individual.decorator'; import { CachePagination } from 'src/cache/cache-next-ttl.decorator'; -import { SearchUserListDto } from './dto/search-user-list.dto'; +import { + GetUserUpdatePasswordDto, + SearchUserListDto, + UserUpdateDto, +} from './dto/request.dto'; @Controller('user') @UseInterceptors(MoheyumInterceptor) diff --git a/server/src/domain/user/user.service.ts b/server/src/domain/user/user.service.ts index d4091d95..a5a3911f 100644 --- a/server/src/domain/user/user.service.ts +++ b/server/src/domain/user/user.service.ts @@ -1,13 +1,15 @@ import { BadRequestException, Injectable } from '@nestjs/common'; -import { UserProfileDto } from './dto/user-profile.dto'; -import { UserUpdateDto } from './dto/user-update.dto'; import { UserRepository } from 'src/database/user.repository'; import { FollowRepository } from 'src/database/follow.repository'; import * as bcrypt from 'bcrypt'; import { ConfigService } from '@nestjs/config'; -import { GetUserUpdatePasswordDto } from './dto/get-update-password.dto'; -import { SearchUserListDto } from './dto/search-user-list.dto'; import { SEARCH_USER_LIMIT } from 'src/constants/pagination.constants'; +import { + GetUserUpdatePasswordDto, + SearchUserListDto, + UserProfileDto, + UserUpdateDto, +} from './dto/request.dto'; @Injectable() export class UserService {