1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import axios from 'axios';
- import { logType } from './enum';
- import { getBrowser, getEnvConfig, getMid, getUserInfo, appVersionCode, appType } from '../utils';
- const { logHost } = getEnvConfig();
- const logAPIUrl = logHost + '/denet';
- export function Report(params: any) {
- let baseInfo = params.baseInfo || {}
- let {eventData = {}, extParams = {}} = params.params || {
- params: {}
- }
- let isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
- let platform = isMobile ? `mobile` : `pc`;
- let browser = getBrowser();
- let userInfo = getUserInfo();
- let extData = {
- url: location.href,
- browser,
- platform,
- twitterId: userInfo && userInfo.nickName || '',
- ...eventData,
- }
- eventData = wrapObject(extData)
- params.baseInfo = {
- mid: getMid(),
- machineCode: getMid(),
- loginUid: userInfo && userInfo.uid || '',
- token: userInfo && userInfo.accessToken || '',
- appType,
- appVersionCode,
- ...baseInfo,
- }
- params.params.logType = logType.denet;
- params.params.eventData = JSON.stringify(eventData)
- params.params.extParams = JSON.stringify(extParams)
-
- axios.post(`${logAPIUrl}/log/uploadLogFromFrontend`, params)
- }
- function wrapObject(extParams: any) {
- if (typeDecide(extParams, 'Object')) {
- return extParams
- }
- return { 'defaultExt': extParams }
- }
- function typeDecide(o: any, type: string) {
- return Object.prototype.toString.call(o) === `[object ${type}]`;
- }
|