Files
shoptime/com.twin.app.shoptime/src/api/TLogEvent.js
2025-05-07 18:10:20 +09:00

99 lines
2.0 KiB
JavaScript

import axios from 'axios';
import { createQueryString } from '../utils/helperMethods';
import { getUrl } from './apiConfig';
export const TLogEvent = (
dispatch,
getState,
type,
baseUrl,
urlParams = {},
params = {},
onSuccess,
onFail,
totalLogFlag = false
) => {
const httpHeader = getState().common.httpHeader;
const appStatus = getState().common.appStatus;
const AUTHORIZATION = { headers: { ...httpHeader } };
const {
cntry_cd: cntryCd,
plat_cd: platCd,
prod_cd: prodCd,
lang_cd: deviceLang,
app_ver: appVersion,
} = httpHeader;
const { deviceId: dvcId } = appStatus;
const deviceEulaFlag = httpHeader["X-Device-Eula"];
const salesModelCode = httpHeader["X-Device-Model"];
const dvcTp = "tv";
if (typeof window === "object") {
let url = Array.isArray(baseUrl)
? getUrl(getState, baseUrl[0])
: getUrl(getState, baseUrl);
if (!url) {
return;
}
if (type === "get") {
const _urlparams = createQueryString(urlParams);
url += _urlparams ? `?${_urlparams}` : "";
}
let model;
if (totalLogFlag) {
model = {
...params,
countryCode: cntryCd,
deviceId: dvcId,
devicePlatformversion: dvcTp,
platformCode: platCd,
platfromVersion: prodCd,
appVersion,
deviceEulaFlag,
salesModelCode,
deviceLang,
};
} else {
model = {
...params,
cntryCd,
dvcId,
dvcTp,
platCd,
prodCd,
};
}
let axiosInstance;
switch (type) {
case "get":
axiosInstance = axios.get(url, AUTHORIZATION);
break;
case "post":
console.log("#model", model);
axiosInstance = axios.post(url, model, AUTHORIZATION);
break;
}
if (axiosInstance) {
axiosInstance
.then((res) => {
if (onSuccess) {
onSuccess(res);
}
})
.catch((error) => {
if (onFail) {
onFail(error);
}
});
}
}
};