Created VisitsTable

This commit is contained in:
Alejandro Celaya
2020-04-03 23:00:57 +02:00
parent c8ba6764c2
commit e6034dfb14
11 changed files with 325 additions and 70 deletions

View File

@@ -1,46 +1,5 @@
import { isNil, isEmpty, memoizeWith, prop } from 'ramda';
const osFromUserAgent = (userAgent) => {
const lowerUserAgent = userAgent.toLowerCase();
switch (true) {
case lowerUserAgent.indexOf('linux') >= 0:
return 'Linux';
case lowerUserAgent.indexOf('windows') >= 0:
return 'Windows';
case lowerUserAgent.indexOf('mac') >= 0:
return 'MacOS';
case lowerUserAgent.indexOf('mobi') >= 0:
return 'Mobile';
default:
return 'Others';
}
};
const browserFromUserAgent = (userAgent) => {
const lowerUserAgent = userAgent.toLowerCase();
switch (true) {
case lowerUserAgent.indexOf('opera') >= 0 || lowerUserAgent.indexOf('opr') >= 0:
return 'Opera';
case lowerUserAgent.indexOf('firefox') >= 0:
return 'Firefox';
case lowerUserAgent.indexOf('chrome') >= 0:
return 'Chrome';
case lowerUserAgent.indexOf('safari') >= 0:
return 'Safari';
case lowerUserAgent.indexOf('msie') >= 0:
return 'Internet Explorer';
default:
return 'Others';
}
};
const extractDomain = (url) => {
const domain = url.indexOf('://') > -1 ? url.split('/')[2] : url.split('/')[0];
return domain.split(':')[0];
};
import { isEmpty, isNil, memoizeWith, prop } from 'ramda';
import { browserFromUserAgent, extractDomain, osFromUserAgent } from '../../utils/helpers/visits';
const visitLocationHasProperty = (visitLocation, propertyName) =>
!isNil(visitLocation)
@@ -48,20 +7,19 @@ const visitLocationHasProperty = (visitLocation, propertyName) =>
&& !isEmpty(visitLocation[propertyName]);
const updateOsStatsForVisit = (osStats, { userAgent }) => {
const os = isNil(userAgent) ? 'Others' : osFromUserAgent(userAgent);
const os = osFromUserAgent(userAgent);
osStats[os] = (osStats[os] || 0) + 1;
};
const updateBrowsersStatsForVisit = (browsersStats, { userAgent }) => {
const browser = isNil(userAgent) ? 'Others' : browserFromUserAgent(userAgent);
const browser = browserFromUserAgent(userAgent);
browsersStats[browser] = (browsersStats[browser] || 0) + 1;
};
const updateReferrersStatsForVisit = (referrersStats, { referer }) => {
const notHasDomain = isNil(referer) || isEmpty(referer);
const domain = notHasDomain ? 'Direct' : extractDomain(referer);
const domain = extractDomain(referer);
referrersStats[domain] = (referrersStats[domain] || 0) + 1;
};