From 05115665060e7dfc4e7b4572c474c343547c8807 Mon Sep 17 00:00:00 2001 From: chloe_choi Date: Wed, 11 Jun 2025 01:39:18 +0900 Subject: [PATCH 1/4] =?UTF-8?q?FLOW-34:=20=EB=A9=98=EC=85=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80,=20=EB=8C=80=EA=B0=95=EC=9D=98=20=EA=B5=AC=ED=98=84,?= =?UTF-8?q?=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=ED=95=84=EC=9A=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/feature/auth/api/authAPI.ts | 21 ------ src/service/feature/auth/api/profileAPI.ts | 10 --- src/service/feature/auth/types/auth.ts | 23 ------ src/service/feature/auth/types/profile.ts | 13 ---- src/service/feature/common/axios/apiType.ts | 5 -- .../feature/common/axios/axiosInstance.ts | 73 ------------------- .../chat/components/message/MentionText.tsx | 0 7 files changed, 145 deletions(-) delete mode 100644 src/service/feature/auth/api/authAPI.ts delete mode 100644 src/service/feature/auth/api/profileAPI.ts delete mode 100644 src/service/feature/auth/types/auth.ts delete mode 100644 src/service/feature/auth/types/profile.ts delete mode 100644 src/service/feature/common/axios/apiType.ts delete mode 100644 src/service/feature/common/axios/axiosInstance.ts create mode 100644 src/view/pages/chat/components/message/MentionText.tsx diff --git a/src/service/feature/auth/api/authAPI.ts b/src/service/feature/auth/api/authAPI.ts deleted file mode 100644 index 8ee649e..0000000 --- a/src/service/feature/auth/api/authAPI.ts +++ /dev/null @@ -1,21 +0,0 @@ -import createAxiosInstance from '@service/feature/common/axios/axiosInstance.ts'; -import { - LoginRequest, - LoginResponse, - RegisterRequest, - RegisterResponse, -} from '@service/feature/auth/types/auth.ts'; - -const axios = createAxiosInstance('members'); - -export const login = async (data: LoginRequest): Promise => { - const response = await axios.post('/sign-in', data); - return response.data.data; -}; - -export const register = async ( - data: RegisterRequest, -): Promise => { - const response = await axios.post('/sign-up', data); - return response.data; -}; diff --git a/src/service/feature/auth/api/profileAPI.ts b/src/service/feature/auth/api/profileAPI.ts deleted file mode 100644 index 125d4ee..0000000 --- a/src/service/feature/auth/api/profileAPI.ts +++ /dev/null @@ -1,10 +0,0 @@ -import createAxiosInstance from '@service/feature/common/axios/axiosInstance.ts'; -import { UserProfile } from '@service/feature/auth/types/profile.ts'; -import { ApiResponse } from '@service/feature/common/axios/apiType.ts'; - -const axios = createAxiosInstance('members'); - -export const getProfile = async (): Promise => { - const response = await axios.get>('/members'); - return response.data.data; -}; diff --git a/src/service/feature/auth/types/auth.ts b/src/service/feature/auth/types/auth.ts deleted file mode 100644 index 992d694..0000000 --- a/src/service/feature/auth/types/auth.ts +++ /dev/null @@ -1,23 +0,0 @@ -export interface LoginRequest { - email: string; - password: string; -} - -export interface LoginResponse { - id: string; - name: string; - type: 'MEMBER' | 'ADMIN' | string; - token: string; -} - -export interface RegisterRequest { - email: string; - password: string; - nickname: string; -} - -export interface RegisterResponse { - userId: string; - email: string; - nickname: string; -} diff --git a/src/service/feature/auth/types/profile.ts b/src/service/feature/auth/types/profile.ts deleted file mode 100644 index 82de607..0000000 --- a/src/service/feature/auth/types/profile.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type MemberState = 'ONLINE' | 'OFFLINE' | 'IDLE' | 'DO_NOT_DISTURB'; - -export interface UserProfile { - id: string; - email: string; - nickname: string; - name: string; - birth: string; - type: 'MEMBER' | 'ADMIN' | string; - avatarUrl: string | null; - state: MemberState; - createdAt: string; -} \ No newline at end of file diff --git a/src/service/feature/common/axios/apiType.ts b/src/service/feature/common/axios/apiType.ts deleted file mode 100644 index ddc11ac..0000000 --- a/src/service/feature/common/axios/apiType.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface ApiResponse { - status: number; - message: string | null; - data: T; -} \ No newline at end of file diff --git a/src/service/feature/common/axios/axiosInstance.ts b/src/service/feature/common/axios/axiosInstance.ts deleted file mode 100644 index 89dde4e..0000000 --- a/src/service/feature/common/axios/axiosInstance.ts +++ /dev/null @@ -1,73 +0,0 @@ -import axios, { AxiosInstance, AxiosError, AxiosResponse } from 'axios'; -import { toast } from 'sonner'; -import { ERROR_MESSAGES } from '../../../lib/const/toast/errorMessage'; -import { getCookie } from '../../auth/lib/getCookie'; - -export type ServiceType = 'members' | 'teams' | 'dialog'; - -const API_CONFIG = { - BASE_DOMAIN: 'https://flowchat.shop:30200', - HEADERS: { - JSON: 'application/json', - }, -} as const; - -interface ErrorResponse { - message: string; -} - -const handleAxiosError = (error: AxiosError) => { - const { response } = error; - if (!response) { - toast.error('네트워크 오류 또는 서버 응답 없음'); - return Promise.reject(error); - } - - const errorMessages: Record = { - 401: ERROR_MESSAGES.UNAUTHORIZED, - 403: ERROR_MESSAGES.FORBIDDEN, - 500: ERROR_MESSAGES.SERVER_ERROR, - }; - - toast.error( - errorMessages[response.status] || - (response.data && response.data.message) || - ERROR_MESSAGES.DEFAULT_ERROR, - ); - - if (response.status === 401) { - // TODO: logout 처리 또는 /login 리디렉션 - } - - return Promise.reject(error); -}; - -export const createAxiosInstance = (): AxiosInstance => { - const instance = axios.create({ - baseURL: API_CONFIG.BASE_DOMAIN, - headers: { - 'Content-Type': API_CONFIG.HEADERS.JSON, - }, - withCredentials: true, - }); - - instance.interceptors.request.use( - (config) => { - const token = getCookie('accessToken'); - if (token) { - config.headers.Authorization = `Bearer ${token}`; - } - return config; - }, - (error) => Promise.reject(error) - ); - - instance.interceptors.response.use( - (response: AxiosResponse) => response, - handleAxiosError - ); - - return instance; -}; - -export default createAxiosInstance; \ No newline at end of file diff --git a/src/view/pages/chat/components/message/MentionText.tsx b/src/view/pages/chat/components/message/MentionText.tsx new file mode 100644 index 0000000..e69de29 From 9e03e5afea80be11944e35ef53bb9c7ebbc0bb71 Mon Sep 17 00:00:00 2001 From: chloe_choi Date: Wed, 11 Jun 2025 01:44:57 +0900 Subject: [PATCH 2/4] =?UTF-8?q?bug:=20=EB=82=A0=EB=9D=BC=EA=B0=84=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EB=B3=B5=EA=B5=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/feature/auth/api/authApi.ts | 0 src/service/feature/auth/api/profileApi.ts | 0 src/service/feature/auth/types/auth.ts | 0 src/service/feature/auth/types/profile.ts | 0 src/service/feature/common/axios/apiType.ts | 0 src/service/feature/common/axios/axiosInstance.ts | 0 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/service/feature/auth/api/authApi.ts create mode 100644 src/service/feature/auth/api/profileApi.ts create mode 100644 src/service/feature/auth/types/auth.ts create mode 100644 src/service/feature/auth/types/profile.ts create mode 100644 src/service/feature/common/axios/apiType.ts create mode 100644 src/service/feature/common/axios/axiosInstance.ts diff --git a/src/service/feature/auth/api/authApi.ts b/src/service/feature/auth/api/authApi.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/service/feature/auth/api/profileApi.ts b/src/service/feature/auth/api/profileApi.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/service/feature/auth/types/auth.ts b/src/service/feature/auth/types/auth.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/service/feature/auth/types/profile.ts b/src/service/feature/auth/types/profile.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/service/feature/common/axios/apiType.ts b/src/service/feature/common/axios/apiType.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/service/feature/common/axios/axiosInstance.ts b/src/service/feature/common/axios/axiosInstance.ts new file mode 100644 index 0000000..e69de29 From b870da2cd6b17f75dbbf5ba04c3c5d812fba873a Mon Sep 17 00:00:00 2001 From: Choi Seung-eun <138289674+xeunnie@users.noreply.github.com> Date: Fri, 13 Jun 2025 22:25:59 +0900 Subject: [PATCH 3/4] Update authApi.ts --- src/service/feature/auth/api/authApi.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/service/feature/auth/api/authApi.ts b/src/service/feature/auth/api/authApi.ts index e69de29..aa52c96 100644 --- a/src/service/feature/auth/api/authApi.ts +++ b/src/service/feature/auth/api/authApi.ts @@ -0,0 +1,21 @@ +import createAxiosInstance from '@service/feature/common/axios/axiosInstance.ts'; +import { + LoginRequest, + LoginResponse, + RegisterRequest, + RegisterResponse, +} from '@service/feature/auth/types/auth.ts'; + +const axios = createAxiosInstance(); + +export const login = async (data: LoginRequest): Promise => { + const response = await axios.post('/sign-in', data); + return response.data.data; +}; + +export const register = async ( + data: RegisterRequest, +): Promise => { + const response = await axios.post('/sign-up', data); + return response.data; +}; From 7f9c9dcdac51bbf29541d2782962590834d064f8 Mon Sep 17 00:00:00 2001 From: Choi Seung-eun <138289674+xeunnie@users.noreply.github.com> Date: Fri, 13 Jun 2025 22:26:16 +0900 Subject: [PATCH 4/4] Update profileApi.ts --- src/service/feature/auth/api/profileApi.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/service/feature/auth/api/profileApi.ts b/src/service/feature/auth/api/profileApi.ts index e69de29..41be268 100644 --- a/src/service/feature/auth/api/profileApi.ts +++ b/src/service/feature/auth/api/profileApi.ts @@ -0,0 +1,10 @@ +import createAxiosInstance from '@service/feature/common/axios/axiosInstance.ts'; +import { UserProfile } from '@service/feature/auth/types/profile.ts'; +import { ApiResponse } from '@service/feature/common/axios/apiType.ts'; + +const axios = createAxiosInstance('members'); + +export const getProfile = async (): Promise => { + const response = await axios.get>('/members'); + return response.data.data; +};