[ST] - code-refresh 로직 추가
This commit is contained in:
@@ -9,7 +9,7 @@ import {
|
||||
} from "@rsone/components";
|
||||
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
||||
|
||||
import { ENDPOINT } from "@/shared/config";
|
||||
import { ENDPOINT, CLAIM_NAME } from "@/shared/config";
|
||||
import { getCookie, useAlertStore, useMenuStore } from "@/shared/lib";
|
||||
import { isBbsNoticeMenu } from "@/shared/lib/bbs-notice-menu";
|
||||
import {
|
||||
@@ -20,8 +20,10 @@ import { useStatisticsTabUrlSync } from "@/shared/lib/use-statistics-tab-url-syn
|
||||
import { isVerificationSelectionReportMenu } from "@/shared/lib/verification-selection-report";
|
||||
import { StatisticsPageLayout } from "@/shared/ui/statistics-page-layout";
|
||||
import { authService } from "@/entities/auth";
|
||||
import { getToken } from "@/entities/auth/lib/token-manager";
|
||||
import type { MenuItem } from "@/entities/menu";
|
||||
import { MenuApi } from "@/entities/menu";
|
||||
import { statisticsApi } from "@/entities/statistics/api/statistics-service";
|
||||
import { BaseLayout } from "@common/components";
|
||||
import { getConfig } from "@common/config";
|
||||
|
||||
@@ -93,6 +95,13 @@ function WithBaseLayoutInner({ children }: { children: React.ReactNode }) {
|
||||
enabled: isLoggedIn,
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (!getToken(CLAIM_NAME)) return;
|
||||
void statisticsApi.refreshCommonCodes().catch(() => {
|
||||
// 캐시 동기화 실패는 화면 진입을 막지 않음
|
||||
});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (menuListData) {
|
||||
setMenuList(menuListData);
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
type cancelSubmitResponse,
|
||||
type CheckStatusCodeRequest,
|
||||
type CheckStatusCodeResponse,
|
||||
type CodesRefreshResponse,
|
||||
type getReviewOpinionDetailRequest,
|
||||
type getReviewOpinionDetailResponse,
|
||||
type ImrRequest,
|
||||
@@ -368,6 +369,16 @@ export class StatisticsApiService implements StatisticsService {
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 공통 코드 메모리 캐시 동기화 */
|
||||
public async refreshCommonCodes(): Promise<CodesRefreshResponse> {
|
||||
const response = await stClient.post<CodesRefreshResponse>(
|
||||
`${ENDPOINT.ST_SERVICE.INPUTCOMMON}/codes-refresh`,
|
||||
null,
|
||||
withAuthHeader(),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
}
|
||||
|
||||
export const statisticsApi = new StatisticsApiService();
|
||||
|
||||
@@ -459,6 +459,12 @@ export interface StatiscicsManagementReviewHistoryRequest {
|
||||
statsCd?: string;
|
||||
}
|
||||
|
||||
/** 공통 코드 메모리 캐시 동기화 (`INPUTCOMMON/codes-refresh`) 응답 */
|
||||
export interface CodesRefreshResponse {
|
||||
status: string;
|
||||
message?: string;
|
||||
}
|
||||
|
||||
/** 통계관리 검토 이력 조회 API `data` 배열 요소 */
|
||||
export interface StatiscicsManagementReviewHistoryItem {
|
||||
statsYr: string;
|
||||
@@ -565,4 +571,5 @@ export interface StatisticsService {
|
||||
StatiscicsExceptionReset(param: StatiscicsExceptionResetRequest): Promise<StatiscicsExceptionResetResponse>;
|
||||
CheckStatusCode(param: CheckStatusCodeRequest): Promise<CheckStatusCodeResponse>;
|
||||
getUnSubmitData(param: unSubmitDataRequest): Promise<unSubmitDataResponse>;
|
||||
refreshCommonCodes(): Promise<CodesRefreshResponse>;
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import { useState } from "react";
|
||||
import Image from "next/image";
|
||||
|
||||
import { authService } from "@/entities/auth";
|
||||
import { statisticsApi } from "@/entities/statistics/api/statistics-service";
|
||||
import { images } from "@common/assets";
|
||||
|
||||
import "./login.css";
|
||||
@@ -21,6 +22,11 @@ function LoginPage() {
|
||||
|
||||
try {
|
||||
await authService.login({ userId, password });
|
||||
try {
|
||||
await statisticsApi.refreshCommonCodes();
|
||||
} catch {
|
||||
// 로그인 성공 후 캐시 동기화 실패는 진입을 막지 않음
|
||||
}
|
||||
window.location.href = "/statistics";
|
||||
} catch (error) {
|
||||
const message =
|
||||
|
||||
Reference in New Issue
Block a user