mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-05-20 12:48:52 +00:00
fix(api): Set platform and agent to Unknown if headers are not passed in
This commit is contained in:
parent
02545ae439
commit
977bafd2d1
2 changed files with 48 additions and 6 deletions
|
|
@ -94,7 +94,19 @@ describe('analyticsService', () => {
|
|||
amplitudeNock
|
||||
.filteringPath(/httpapi.*platform.*3rd\%20Party.*/g, '');
|
||||
|
||||
data.headers = {};
|
||||
data.headers = {'x-client': 'some-third-party'};
|
||||
|
||||
return analyticsService.track(eventType, data)
|
||||
.then(() => {
|
||||
amplitudeNock.done();
|
||||
});
|
||||
});
|
||||
|
||||
it('logs unknown if headers are not passed in', () => {
|
||||
amplitudeNock
|
||||
.filteringPath(/httpapi.*platform.*Unknown.*/g, '');
|
||||
|
||||
delete data.headers;
|
||||
|
||||
return analyticsService.track(eventType, data)
|
||||
.then(() => {
|
||||
|
|
@ -108,6 +120,11 @@ describe('analyticsService', () => {
|
|||
amplitudeNock
|
||||
.filteringPath(/httpapi.*os.*name.*Other.*/g, '');
|
||||
|
||||
data.headers = {
|
||||
'x-client': 'thrid-party',
|
||||
'user-agent': 'foo',
|
||||
};
|
||||
|
||||
return analyticsService.track(eventType, data)
|
||||
.then(() => {
|
||||
amplitudeNock.done();
|
||||
|
|
@ -118,8 +135,10 @@ describe('analyticsService', () => {
|
|||
amplitudeNock
|
||||
.filteringPath(/httpapi.*os.*name.*iOS.*/g, '');
|
||||
|
||||
data.headers = {'x-client': 'habitica-ios',
|
||||
'user-agent': 'Habitica/148 (iPhone; iOS 9.3; Scale/2.00)'};
|
||||
data.headers = {
|
||||
'x-client': 'habitica-ios',
|
||||
'user-agent': 'Habitica/148 (iPhone; iOS 9.3; Scale/2.00)',
|
||||
};
|
||||
|
||||
return analyticsService.track(eventType, data)
|
||||
.then(() => {
|
||||
|
|
@ -131,7 +150,22 @@ describe('analyticsService', () => {
|
|||
amplitudeNock
|
||||
.filteringPath(/httpapi.*os.*name.*Android.*/g, '');
|
||||
|
||||
data.headers = {'x-client': 'habitica-android'};
|
||||
data.headers = {
|
||||
'x-client': 'habitica-android',
|
||||
'user-agent': 'Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19',
|
||||
};
|
||||
|
||||
return analyticsService.track(eventType, data)
|
||||
.then(() => {
|
||||
amplitudeNock.done();
|
||||
});
|
||||
});
|
||||
|
||||
it('sets Unkown if headers are not passed in', () => {
|
||||
amplitudeNock
|
||||
.filteringPath(/httpapi.*Unknown.*/g, '');
|
||||
|
||||
delete data.headers;
|
||||
|
||||
return analyticsService.track(eventType, data)
|
||||
.then(() => {
|
||||
|
|
|
|||
|
|
@ -89,6 +89,10 @@ let _formatUserData = (user) => {
|
|||
};
|
||||
|
||||
let _formatPlatformForAmplitude = (platform) => {
|
||||
if (!platform) {
|
||||
return 'Unknown';
|
||||
}
|
||||
|
||||
if (platform in PLATFORM_MAP) {
|
||||
return PLATFORM_MAP[platform];
|
||||
}
|
||||
|
|
@ -97,6 +101,10 @@ let _formatPlatformForAmplitude = (platform) => {
|
|||
};
|
||||
|
||||
let _formatUserAgentForAmplitude = (platform, agentString) => {
|
||||
if (!agentString) {
|
||||
return 'Unknown';
|
||||
}
|
||||
|
||||
let agent = useragent.lookup(agentString).toJSON();
|
||||
let formattedAgent = {};
|
||||
if (platform === 'iOS' || platform === 'Android') {
|
||||
|
|
@ -115,8 +123,8 @@ let _formatUserAgentForAmplitude = (platform, agentString) => {
|
|||
|
||||
let _formatDataForAmplitude = (data) => {
|
||||
let event_properties = omit(data, AMPLITUDE_PROPERTIES_TO_SCRUB);
|
||||
let platform = _formatPlatformForAmplitude(data.headers['x-client']);
|
||||
let agent = _formatUserAgentForAmplitude(platform, data.headers['user-agent']);
|
||||
let platform = _formatPlatformForAmplitude(data.headers && data.headers['x-client']);
|
||||
let agent = _formatUserAgentForAmplitude(platform, data.headers && data.headers['user-agent']);
|
||||
let ampData = {
|
||||
user_id: data.uuid || 'no-user-id-was-provided',
|
||||
platform,
|
||||
|
|
|
|||
Loading…
Reference in a new issue