diff --git a/src/entity/schemes.ts b/src/entity/schemes.ts index 00477f2..5772186 100644 --- a/src/entity/schemes.ts +++ b/src/entity/schemes.ts @@ -89,10 +89,15 @@ export const UserResponseScheme = { imageUrl: z.string().optional().nullable(), } -export const SubscriptionSchema = { +export const SubscriptionScheme = { subscribing: z.boolean() } export const TopicsScheme = { topics: z.array(z.string()) } + +export const UpdateMeRequestScheme = { + nickname: z.string(), + imageUuid: z.string().optional().nullable() +}; diff --git a/src/server/routes/subscription/getSubscription.ts b/src/server/routes/subscription/getSubscription.ts index c34cfb5..6e2f2a3 100644 --- a/src/server/routes/subscription/getSubscription.ts +++ b/src/server/routes/subscription/getSubscription.ts @@ -2,13 +2,13 @@ import {defineSchema} from '../../libs/schema'; import {defineRoute} from '../../libs/route'; import {authorizer} from '../../middleware/authorizer'; import SubscriptionService from '../../../service/SubscriptionService'; -import {SubscriptionSchema} from '../../../entity/schemes'; +import {SubscriptionScheme} from '../../../entity/schemes'; const schema = defineSchema({ summary: '새 행사 구독 여부 가져오기', description: '새 글 알림이 켜져있는지 아니면 꺼져있는지 여부를 가져옵니다.', - response: SubscriptionSchema + response: SubscriptionScheme }); export default defineRoute('get', '/subscription/subscribing', schema, authorizer(), async (req, res) => { diff --git a/src/server/routes/subscription/updateSubscription.ts b/src/server/routes/subscription/updateSubscription.ts index cc3db2f..0c50d66 100644 --- a/src/server/routes/subscription/updateSubscription.ts +++ b/src/server/routes/subscription/updateSubscription.ts @@ -2,13 +2,13 @@ import {defineSchema} from '../../libs/schema'; import {defineRoute} from '../../libs/route'; import {authorizer} from '../../middleware/authorizer'; import SubscriptionService from '../../../service/SubscriptionService'; -import {SubscriptionSchema} from '../../../entity/schemes'; +import {SubscriptionScheme} from '../../../entity/schemes'; const schema = defineSchema({ summary: '새 행사 구독 여부 설정하기', description: '새 글 알림 켜짐/꺼짐 여부를 설정합니다.', - body: SubscriptionSchema + body: SubscriptionScheme }); export default defineRoute('put', '/subscription/subscribing', schema, authorizer(), async (req, res) => { diff --git a/src/server/routes/users/updateMe.ts b/src/server/routes/users/updateMe.ts index b46744c..a877f6c 100644 --- a/src/server/routes/users/updateMe.ts +++ b/src/server/routes/users/updateMe.ts @@ -1,17 +1,14 @@ -import {z} from 'zod'; import UserService from '../../../service/UserService'; import {authorizer} from '../../middleware/authorizer'; import {defineRoute} from '../../libs/route'; import {defineSchema} from '../../libs/schema'; +import {partialSchemeOf, UpdateMeRequestScheme} from '../../../entity/schemes'; const schema = defineSchema({ summary: '내 정보 업데이트하기', description: '내 정보를 업데이트합니다.', - body: { - nickname: z.string().optional(), - imageUuid: z.string().optional() - }, + body: partialSchemeOf(UpdateMeRequestScheme), }); export default defineRoute('patch', '/me', schema, authorizer(), async (req, res) => { diff --git a/src/service/SubscriptionService.ts b/src/service/SubscriptionService.ts index 00e850c..f451155 100644 --- a/src/service/SubscriptionService.ts +++ b/src/service/SubscriptionService.ts @@ -2,11 +2,11 @@ import User from '../entity/User'; import {Infer} from '../common/utils/zod'; import FcmService from './FcmService'; import Event from '../entity/Event'; -import {SubscriptionSchema, TopicsScheme} from '../entity/schemes'; +import {SubscriptionScheme, TopicsScheme} from '../entity/schemes'; import {log} from '../common/utils/log'; class SubscriptionService { - async getSubscription(userId: number): Promise> { + async getSubscription(userId: number): Promise> { const user = await User.findOneOrFail(userId); return { diff --git a/src/service/UserService.ts b/src/service/UserService.ts index db45347..e247539 100644 --- a/src/service/UserService.ts +++ b/src/service/UserService.ts @@ -1,16 +1,13 @@ import User from '../entity/User'; - -type ModifyUserParams = { - nickname: string; - imageUuid: string -}; +import {Infer} from '../common/utils/zod'; +import {UpdateMeRequestScheme} from '../entity/schemes'; class UserService { async getUser(id: number): Promise { return await User.findOneOrFail({where: {id}}); } - async patchUser(id: number, body: Partial): Promise { + async patchUser(id: number, body: Partial>): Promise { const patchuser = await User.update( {id}, body