diff --git a/src/service/userService.ts b/src/service/userService.ts index 94970f3..61b64bb 100644 --- a/src/service/userService.ts +++ b/src/service/userService.ts @@ -2,105 +2,119 @@ import { PrismaClient } from "@prisma/client"; import { IntroDTO } from "../interfaces/user/IntroDTO"; import { UserDTO } from "../interfaces/user/UserDTO"; import { UserDuplicateDTO } from "../interfaces/user/UserDuplicateDTO"; +import { UserVersionDTO } from "../interfaces/user/UserVersionDTO"; const prisma = new PrismaClient(); //* 사용자 조회 const getUser = async (userId: number): Promise => { - const userData = await prisma.user.findFirst({ - where: { - id: userId - }, - select: { - id: true, - nickname: true, - profileImage: true - } - }); - if (!userData) throw new Error('no user!'); - - return userData; -} + const userData = await prisma.user.findFirst({ + where: { + id: userId, + }, + select: { + id: true, + nickname: true, + profileImage: true, + }, + }); + if (!userData) throw new Error("no user!"); + + return userData; +}; //* 사용자 정보 조회 const getUserIntro = async (userId: number) => { - const userIntro: IntroDTO | null = await prisma.user.findUnique({ - where: { - id: userId - }, - select: { - id: true, - nickname: true, - profileImage: true, - intro: true - } - }); - if (!userIntro) throw new Error('no userIntro!'); - - return userIntro; -} + const userIntro: IntroDTO | null = await prisma.user.findUnique({ + where: { + id: userId, + }, + select: { + id: true, + nickname: true, + profileImage: true, + intro: true, + }, + }); + if (!userIntro) throw new Error("no userIntro!"); + + return userIntro; +}; //* 유저닉네임 중복 검사 const postDuplicateNickname = async (userId: number, nickname: string) => { - let isExisted = 1; - - const lowercaseNickname: string = nickname.toLowerCase(); - - const userCheck = await prisma.user.findFirst({ - where: { - nickname: { - equals: lowercaseNickname, - mode: "insensitive" - } - }, - select: { - nickname: true - } - }); - - if (!userCheck) { - isExisted = 0; - }; - - const data = { - check: isExisted - } - return data; -} + let isExisted = 1; + + const lowercaseNickname: string = nickname.toLowerCase(); + + const userCheck = await prisma.user.findFirst({ + where: { + nickname: { + equals: lowercaseNickname, + mode: "insensitive", + }, + }, + select: { + nickname: true, + }, + }); + + if (!userCheck) { + isExisted = 0; + } + + const data = { + check: isExisted, + }; + return data; +}; //* refreshToken으로 유저 검색 const getUserByRfToken = async (refreshToken: string) => { - const user = prisma.user.findFirst({ - where: { - refresh_token: refreshToken - } - }); - - return user; -} - -const getUserVersion = async (userId: number) => { - const versionData = await prisma.version.findUnique({ - where: { - id: 1 - }, - select: { - imageUrl: true, - iosForceVersion: true, - androidForceVersion: true, - text: true - } - }); - - return versionData; -} + const user = prisma.user.findFirst({ + where: { + refresh_token: refreshToken, + }, + }); + + return user; +}; + +const getUserVersion = async ( + userId: number +): Promise => { + const versionData = await prisma.version.findUnique({ + where: { + id: 1, + }, + select: { + imageUrl: true, + iosForceVersion: true, + androidForceVersion: true, + text: true, + }, + }); + + if (!versionData) { + return null; + } + + const userVersionDTO: UserVersionDTO = { + androidForceVersion: versionData.androidForceVersion || "", + imageUrl: versionData.imageUrl || "", + text: versionData.text || "", + iosForceVersion: versionData.iosForceVersion || "", + }; + + return userVersionDTO; +}; const userService = { - getUser, - getUserIntro, - postDuplicateNickname, - getUserByRfToken, - getUserVersion + getUser, + getUserIntro, + postDuplicateNickname, + getUserByRfToken, + getUserVersion, }; -export default userService; \ No newline at end of file +export default userService;