[api, actions] logActions, TLogEvent 추가
This commit is contained in:
154
com.twin.app.shoptime/src/actions/logActions.js
Normal file
154
com.twin.app.shoptime/src/actions/logActions.js
Normal file
@@ -0,0 +1,154 @@
|
||||
import { URLS } from "../api/apiConfig";
|
||||
import { clearLaunchParams, getLaunchParams } from "../utils/helperMethods";
|
||||
import { TLogEvent } from "../api/TLogEvent";
|
||||
import { LOG_MENU_NAME, LOG_TEMPLATE_NUMBER } from "../utils/Config";
|
||||
|
||||
/**
|
||||
* IG-LGSP-LOG-001 / Live 시청 이력
|
||||
*
|
||||
* (M) entryMenu 진입 메뉴
|
||||
*
|
||||
* (O) lgCatCd 카테고리 코드
|
||||
*
|
||||
* (O) lgCatNm 카테고리 네임
|
||||
*
|
||||
* (M) logTpNo 로그 타입 넘버
|
||||
*
|
||||
* (M) nowMenu 현재 메뉴
|
||||
*
|
||||
* (M) patncNm 파트너 네임
|
||||
*
|
||||
* (M) patnrId 파트너 아이디
|
||||
*
|
||||
* (M) showId 쇼 아이디
|
||||
*
|
||||
* (M) showNm 쇼 네임
|
||||
*
|
||||
* (O) vdoTpNm 영상 가로 세로 여부 ("Vertical" or "Horizontal")
|
||||
*
|
||||
* (M) watchEndDt 시청 종료 시간
|
||||
*
|
||||
* (M) watchStrtDt 시청 시작 시간
|
||||
*/
|
||||
export const postLogLive = (props) => (dispatch, getState) => {
|
||||
const { logTpNo } = props;
|
||||
|
||||
const params = {
|
||||
...props,
|
||||
entryMenu: props.entryMenu ?? "",
|
||||
lgCatCd: props.lgCatCd ?? "",
|
||||
lgCatNm: props.lgCatNm ?? "",
|
||||
nowMenu: props.nowMenu ?? "",
|
||||
patncNm: props.patncNm ?? "",
|
||||
patnrId: props.patnrId ?? "",
|
||||
showId: props.showId ?? "",
|
||||
showNm: props.showNm ?? "",
|
||||
vdoTpNm: props.vdoTpNm ?? "",
|
||||
watchEndDt: props.watchEndDt ?? "",
|
||||
watchStrtDt: props.watchStrtDt ?? "",
|
||||
};
|
||||
|
||||
const onSuccess = (response) => {
|
||||
console.log("", response);
|
||||
console.log("sendLogLive onSuccess", JSON.parse(response.config.data));
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("sendLogLive onFail", error);
|
||||
};
|
||||
|
||||
TLogEvent(
|
||||
dispatch,
|
||||
getState,
|
||||
"post",
|
||||
URLS.LOG_LIVE,
|
||||
{},
|
||||
params,
|
||||
onSuccess,
|
||||
onFail
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* IF-LGSP-LOG-003 / Curations View 이력
|
||||
*
|
||||
* (O) cnttTpNm 컨텐츠 타입 네임 "Show" / "item"
|
||||
*
|
||||
* (M) curationId 큐레이션 아이디
|
||||
*
|
||||
* (M) curationNm 큐레이션 네임
|
||||
*
|
||||
* (M) entryMenu 진입 메뉴
|
||||
*
|
||||
* (M) expsOrd 노출 순서
|
||||
*
|
||||
* (O) lgCatCd 카테고리 코드
|
||||
*
|
||||
* (O) lgCatNm 카테고리 네임
|
||||
*
|
||||
* (M) logTpNo 로그 타입 넘버
|
||||
*
|
||||
* (M) nowMenu 현재 메뉴
|
||||
*
|
||||
* (M) patncNm 파트너 네임
|
||||
*
|
||||
* (M) patnrId 파트너 아이디
|
||||
*
|
||||
* (O) sortTpNm 정렬 타입 네임 "popular" / "new"
|
||||
*/
|
||||
export const postLogQuration = (props) => (dispatch, getState) => {
|
||||
const { logTpNo } = props;
|
||||
|
||||
let menu;
|
||||
|
||||
switch (logTpNo) {
|
||||
case LOG_TEMPLATE_NUMBER.CURATION.HOT_PICKS:
|
||||
menu = LOG_MENU_NAME.MENU_HOTPICKS;
|
||||
break;
|
||||
case LOG_TEMPLATE_NUMBER.CURATION.ON_SALE:
|
||||
menu = LOG_MENU_NAME.MENU_ONSALE;
|
||||
break;
|
||||
case LOG_TEMPLATE_NUMBER.CURATION.HOME:
|
||||
menu = LOG_MENU_NAME.MENU_HOME;
|
||||
break;
|
||||
case LOG_TEMPLATE_NUMBER.CURATION.CATEGORY:
|
||||
menu = LOG_MENU_NAME.MENU_SUBPAGE_CATEGORY;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
const params = {
|
||||
...props,
|
||||
cnttTpNm: props.cnttTpNm ?? "",
|
||||
curationId: props.curationId ?? "",
|
||||
curationNm: props.curationNm ?? "",
|
||||
entryMenu: props.entryMenu ?? menu,
|
||||
expsOrd: props.expsOrd ?? "",
|
||||
lgCatCd: props.lgCatCd ?? "",
|
||||
lgCatNm: props.lgCatNm ?? "",
|
||||
nowMenu: props.nowMenu ?? menu,
|
||||
patncNm: props.patncNm ?? "",
|
||||
patnrId: props.patnrId ?? "",
|
||||
sortTpNm: props.sortTpNm ?? "",
|
||||
};
|
||||
|
||||
const onSuccess = (response) => {
|
||||
console.log("sendLogQuration onSuccess", JSON.parse(response.config.data));
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("sendLogQuration onFail", error);
|
||||
};
|
||||
|
||||
TLogEvent(
|
||||
dispatch,
|
||||
getState,
|
||||
"post",
|
||||
URLS.LOG_CURATION,
|
||||
{},
|
||||
params,
|
||||
onSuccess,
|
||||
onFail
|
||||
);
|
||||
};
|
||||
92
com.twin.app.shoptime/src/api/TLogEvent.js
Normal file
92
com.twin.app.shoptime/src/api/TLogEvent.js
Normal file
@@ -0,0 +1,92 @@
|
||||
import axios from "axios";
|
||||
|
||||
import { getUrl, URLS } from "./apiConfig";
|
||||
import { clearLaunchParams, getLaunchParams } from "../utils/helperMethods";
|
||||
import { createQueryString } from "../utils/helperMethods";
|
||||
|
||||
export const TLogEvent = (
|
||||
dispatch,
|
||||
getState,
|
||||
type,
|
||||
baseUrl,
|
||||
urlParams = {},
|
||||
params = {},
|
||||
onSuccess,
|
||||
onFail
|
||||
) => {
|
||||
const httpHeader = getState().common.httpHeader;
|
||||
const appStatus = getState().common.appStatus;
|
||||
const AUTHORIZATION = { headers: { ...httpHeader } };
|
||||
|
||||
const { cntry_cd: cntryCd, plat_cd: platCd, prod_cd: prodCd } = httpHeader;
|
||||
const { deviceId: dvcId } = appStatus;
|
||||
const dvcTp = "tv";
|
||||
|
||||
if (typeof window === "object") {
|
||||
let url = Array.isArray(baseUrl)
|
||||
? getUrl(getState, baseUrl[0])
|
||||
: getUrl(getState, baseUrl);
|
||||
|
||||
if (!url) {
|
||||
return;
|
||||
}
|
||||
|
||||
// pyh 수정
|
||||
if (type === "get") {
|
||||
const _urlparams = createQueryString(urlParams);
|
||||
url += _urlparams ? `?${_urlparams}` : "";
|
||||
}
|
||||
|
||||
let linkTpCd = "";
|
||||
|
||||
// pyh 수정
|
||||
if (httpHeader) {
|
||||
const launchParams = getLaunchParams();
|
||||
|
||||
if (launchParams?.contentTarget) {
|
||||
const tokens = launchParams.contentTarget.split("_");
|
||||
|
||||
if (tokens[0] === "V3") {
|
||||
linkTpCd = tokens[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const model = {
|
||||
...params,
|
||||
adId: "",
|
||||
cntryCd,
|
||||
dvcId,
|
||||
dvcTp,
|
||||
linkTpCd,
|
||||
platCd,
|
||||
prodCd,
|
||||
};
|
||||
|
||||
let axiosInstance;
|
||||
|
||||
switch (type) {
|
||||
case "get":
|
||||
axiosInstance = axios.get(url, AUTHORIZATION);
|
||||
break;
|
||||
case "post":
|
||||
axiosInstance = axios.post(url, model, AUTHORIZATION);
|
||||
break;
|
||||
}
|
||||
|
||||
if (axiosInstance) {
|
||||
axiosInstance
|
||||
.then((res) => {
|
||||
if (onSuccess) {
|
||||
onSuccess(res);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
if (onFail) {
|
||||
onFail(error);
|
||||
}
|
||||
});
|
||||
// .finally(clearLaunchParams);
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user