[251029] feat: UserReviewList API-1
🕐 커밋 시간: 2025. 10. 29. 10:37:54 📊 변경 통계: • 총 파일: 2개 • 추가: +111줄 📝 수정된 파일: ~ com.twin.app.shoptime/src/actions/productActions.js ~ com.twin.app.shoptime/src/api/apiConfig.js 🔧 주요 변경 내용: • 핵심 비즈니스 로직 개선 • API 서비스 레이어 개선 • 중간 규모 기능 개선
This commit is contained in:
@@ -150,6 +150,28 @@ const extractReviewApiData = (apiResponse) => {
|
||||
}
|
||||
};
|
||||
|
||||
// IF-LGSP-101용 API 응답에서 reviewDetail 추출
|
||||
const extractReviewListApiData = (apiResponse) => {
|
||||
try {
|
||||
let reviewDetail = null;
|
||||
|
||||
if (apiResponse && apiResponse.data && apiResponse.data.reviewDetail) {
|
||||
reviewDetail = apiResponse.data.reviewDetail;
|
||||
} else if (apiResponse && apiResponse.reviewDetail) {
|
||||
reviewDetail = apiResponse.reviewDetail;
|
||||
}
|
||||
|
||||
if (!reviewDetail) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return reviewDetail;
|
||||
} catch (error) {
|
||||
console.error('[UserReviewList] ❌ extractReviewListApiData 에러:', error);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
// Mock 데이터 생성 함수 (재사용성 위해 분리) - 100개 리뷰와 많은 이미지 포함
|
||||
const createMockReviewData = () => {
|
||||
const reviewTexts = [
|
||||
@@ -389,3 +411,90 @@ export const getVideoIndicatorFocus = (focused) => (dispatch) => {
|
||||
payload: focused,
|
||||
});
|
||||
};
|
||||
|
||||
// User Review List 추가 조회 IF-LGSP-101
|
||||
export const getUserReviewList = (requestParams) => (dispatch, getState) => {
|
||||
const {
|
||||
prdtId,
|
||||
patnrId,
|
||||
filterTpCd = 'ALL',
|
||||
filterTpVal,
|
||||
pageSize = 5,
|
||||
pageNo = 1
|
||||
} = requestParams;
|
||||
|
||||
const params = {
|
||||
prdtId,
|
||||
patnrId,
|
||||
filterTpCd,
|
||||
pageSize,
|
||||
pageNo
|
||||
};
|
||||
|
||||
if (filterTpCd !== 'ALL' && filterTpVal) {
|
||||
params.filterTpVal = filterTpVal;
|
||||
}
|
||||
|
||||
const body = {};
|
||||
|
||||
console.log('[UserReviewList] 🚀 API 요청 시작:', {
|
||||
requestParams,
|
||||
params,
|
||||
body,
|
||||
url: URLS.GET_USER_REVIEW_LIST,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
|
||||
const onSuccess = (response) => {
|
||||
console.log('[UserReviewList] ✅ API 성공 응답:', {
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
retCode: response.data && response.data.retCode,
|
||||
retMsg: response.data && response.data.retMsg,
|
||||
hasData: !!(response.data && response.data.data),
|
||||
fullResponse: response.data,
|
||||
});
|
||||
|
||||
const reviewDetail = extractReviewListApiData(response.data);
|
||||
|
||||
console.log('[UserReviewList] 📊 추출된 reviewDetail:', {
|
||||
hasReviewDetail: !!reviewDetail,
|
||||
reviewDetail: reviewDetail,
|
||||
totRvwCnt: reviewDetail && reviewDetail.totRvwCnt,
|
||||
totRvwAvg: reviewDetail && reviewDetail.totRvwAvg,
|
||||
rvwListCnt: reviewDetail && reviewDetail.rvwListCnt,
|
||||
reviewListLength: reviewDetail && reviewDetail.reviewList ? reviewDetail.reviewList.length : 0,
|
||||
});
|
||||
|
||||
if (reviewDetail) {
|
||||
dispatch({
|
||||
type: types.GET_USER_REVIEW_LIST,
|
||||
payload: {
|
||||
reviewDetail,
|
||||
prdtId: prdtId
|
||||
},
|
||||
});
|
||||
console.log('[UserReviewList] 📦 데이터 디스패치 완료:', {
|
||||
reviewDetail,
|
||||
prdtId
|
||||
});
|
||||
} else {
|
||||
console.warn('[UserReviewList] ⚠️ reviewDetail 추출 실패');
|
||||
}
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error('[UserReviewList] ❌ API 실패:', {
|
||||
message: error.message,
|
||||
status: error.response && error.response.status,
|
||||
statusText: error.response && error.response.statusText,
|
||||
responseData: error.response && error.response.data,
|
||||
requestParams: requestParams,
|
||||
params: params,
|
||||
url: URLS.GET_USER_REVIEW_LIST,
|
||||
fullError: error,
|
||||
});
|
||||
};
|
||||
|
||||
TAxios(dispatch, getState, 'get', URLS.GET_USER_REVIEW_LIST, params, body, onSuccess, onFail);
|
||||
};
|
||||
@@ -59,6 +59,8 @@ export const URLS = {
|
||||
GET_PRODUCT_GROUP: "/lgsp/v1/product/group.lge",
|
||||
GET_PRODUCT_OPTION: "/lgsp/v1/product/option.lge",
|
||||
GET_USER_REVEIW: "/lgsp/v1/product/reviews.lge",
|
||||
// IF-LGSP-101 신규 - Reviews API 추가 251029
|
||||
GET_USER_REVIEW_LIST: "/lgsp/v1/product/review/list.lge",
|
||||
|
||||
//my-page controller
|
||||
GET_MY_RECOMMANDED_KEYWORD: "/lgsp/v1/mypage/reckeyword.lge",
|
||||
|
||||
Reference in New Issue
Block a user