//지표 관리 - 유저 지표, 경제 지표 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); } } };