265 lines
6.9 KiB
JavaScript
265 lines
6.9 KiB
JavaScript
//지표 관리 - 유저 지표, 경제 지표 api
|
|
|
|
import { Axios } from '../utils';
|
|
|
|
// 1. 유저 지표
|
|
// 2. 경제 지표
|
|
|
|
// 1. 유저 지표
|
|
|
|
// 이용자 지표 조회
|
|
export const userIndexView = async (token, sendDate, endDate) => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/user/list?start_dt=${sendDate}&end_dt=${endDate}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
});
|
|
|
|
return res.data.data.user_statistics_list;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('MailView Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// 이용자 지표 총계
|
|
export const userTotalIndex = async token => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/user/total`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
});
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('userTotalIndex', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
export const dashboardCaliumIndex = async token => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/dashboard/calium/converter`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
});
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('dashboardCaliumIndex', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// 유저 지표 다운로드
|
|
export const userIndexExport = async (token, filename, sendDate, endDate) => {
|
|
try {
|
|
await Axios.get(`/api/v1/indicators/user/excel-down?file=${filename}&start_dt=${sendDate}&end_dt=${endDate}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
responseType: 'blob',
|
|
}).then(response => {
|
|
const href = URL.createObjectURL(response.data);
|
|
|
|
const link = document.createElement('a');
|
|
link.href = href;
|
|
link.setAttribute('download', `${filename}`);
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
|
|
document.body.removeChild(link);
|
|
URL.revokeObjectURL(href);
|
|
});
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('userIndexExport Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Retention
|
|
export const RetentionIndexView = async (token, startDate, endDate, order, size, currentPage) => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/retention/list?start_dt=${startDate}&end_dt=${endDate}
|
|
&orderby=${order}&page_no=${currentPage}&page_size=${size}`, {
|
|
headers: {
|
|
Authorization: `Bearer ${token}`,
|
|
'Content-Type': 'application/json'
|
|
},
|
|
});
|
|
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('RetentionIndexView Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Retention 다운로드
|
|
export const RetentionIndexExport = async (token, filename, sendDate, endDate) => {
|
|
try {
|
|
await Axios.get(`/api/v1/indicators/retention/excel-down?${filename}&start_dt=${sendDate}&end_dt=${endDate}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
responseType: 'blob',
|
|
}).then(response => {
|
|
const href = URL.createObjectURL(response.data);
|
|
|
|
const link = document.createElement('a');
|
|
link.href = href;
|
|
link.setAttribute('download', `${filename}`);
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
|
|
document.body.removeChild(link);
|
|
URL.revokeObjectURL(href);
|
|
});
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('RetentionIndexExport Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Segment
|
|
export const SegmentIndexView = async (token, search_dt) => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/segment/list?search_dt=${search_dt}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
});
|
|
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('SegmentIndexView Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Segment 다운로드
|
|
export const SegmentIndexExport = async (token, filename, endDate) => {
|
|
try {
|
|
await Axios.get(`/api/v1/indicators/segment/excel-down?${filename}&search_dt=${endDate}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
responseType: 'blob',
|
|
}).then(response => {
|
|
const href = URL.createObjectURL(response.data);
|
|
|
|
const link = document.createElement('a');
|
|
link.href = href;
|
|
link.setAttribute('download', `${filename}`);
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
|
|
document.body.removeChild(link);
|
|
URL.revokeObjectURL(href);
|
|
});
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('SegmentIndexExport Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Playtime
|
|
export const PlaytimeIndexView = async (token, start_dt, end_dt) => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/playtime/list?start_dt=${start_dt}&end_dt=${end_dt}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
});
|
|
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('PlaytimeIndexView Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Playtime 다운로드
|
|
export const PlaytimeIndexExport = async (token, filename, sendDate, endDate) => {
|
|
try {
|
|
await Axios.get(`/api/v1/indicators/playtime/excel-down?file=${filename}&start_dt=${sendDate}&end_dt=${endDate}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
responseType: 'blob',
|
|
}).then(response => {
|
|
const href = URL.createObjectURL(response.data);
|
|
|
|
const link = document.createElement('a');
|
|
link.href = href;
|
|
link.setAttribute('download', `${filename}`);
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
|
|
document.body.removeChild(link);
|
|
URL.revokeObjectURL(href);
|
|
});
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('PlaytimeIndexExport Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// 2. 경제 지표
|
|
|
|
// 재화 획득 조회
|
|
export const CurrencyAcquireIndexView = async (token, start_dt, end_dt, currencyType, deltaType) => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/currency/list?start_dt=${start_dt}&end_dt=${end_dt}¤cy_type=${currencyType}&delta_type=${deltaType}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
});
|
|
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('currencyIndexView Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Item
|
|
export const ItemIndexView = async (token, start_dt, end_dt, itemId, deltaType) => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/item/list?start_dt=${start_dt}&end_dt=${end_dt}&item_id=${itemId}&delta_type=${deltaType}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
});
|
|
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('ItemIndexView Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Assets
|
|
export const AssetsIndexView = async (token, start_dt, end_dt, itemId, deltaType) => {
|
|
try {
|
|
const res = await Axios.get(`/api/v1/indicators/assets/list?start_dt=${start_dt}&end_dt=${end_dt}`, {
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
});
|
|
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('AssetsIndexView Error', e);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Instance
|
|
export const InstanceIndexView = async (token, data, start_dt, end_dt) => {
|
|
try {
|
|
const res = await Axios.get(
|
|
`/api/v1/indicators/currency/instance?search_key=${data ? data : ''}
|
|
&start_dt=${start_dt}&end_dt=${end_dt}`,
|
|
{
|
|
headers: { Authorization: `Bearer ${token}` },
|
|
},
|
|
);
|
|
|
|
return res.data.data;
|
|
} catch (e) {
|
|
if (e instanceof Error) {
|
|
throw new Error('InstanceIndexView Error', e);
|
|
}
|
|
}
|
|
}; |