Skip to content

Commit

Permalink
Merge pull request #5402 from Countly/SER-897-mark-carrier-as-unknown
Browse files Browse the repository at this point in the history
[SER-897] if carrier is not passed, set it to unknown
  • Loading branch information
Cookiezaurs committed Jul 12, 2024
2 parents 1000fc4 + 09c4b93 commit 32eb1e1
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 25 deletions.
15 changes: 10 additions & 5 deletions api/utils/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -2773,14 +2773,21 @@ common.updateAppUser = function(params, update, no_meta, callback) {
* @param {object} metrics - metrics object from SDK request
*/
common.processCarrier = function(metrics) {
if (metrics && metrics._carrier) {
// Initialize metrics if undefined
metrics = metrics || {};
if (metrics._carrier) {
var carrier = metrics._carrier + "";

//random hash without spaces
if ((carrier.length === 16 && carrier.indexOf(" ") === -1)) {
delete metrics._carrier;
}

// Since iOS 16.04 carrier returns value "--", interpret as Unknown by deleting
if (carrier === "--") {
delete metrics._carrier;
}

//random code
if ((carrier.length === 5 || carrier.length === 6) && /^[0-9]+$/.test(carrier)) {
//check if mcc and mnc match some operator
Expand All @@ -2798,10 +2805,8 @@ common.processCarrier = function(metrics) {
});

metrics._carrier = carrier;
if (!metrics._carrier || metrics._carrier === "--") {
metrics._carrier = "Unknown";
}
}
metrics._carrier = metrics._carrier ? metrics._carrier : "Unknown";
};

/**
Expand Down Expand Up @@ -3819,4 +3824,4 @@ common.trimWhitespaceStartEnd = function(value) {
return value;
};

module.exports = common;
module.exports = common;
14 changes: 7 additions & 7 deletions test/3.api.write/2.write.app.sessions.js
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ describe('Writing app sessions', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 1, total_users: 1, new_users: 1, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "2.0", platforms: [], carriers: [], resolutions: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 1, total_users: 1, new_users: 1, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "2.0", platforms: [], carriers: [{ name: 'Unknown', value: 1, percent: 100 }], resolutions: []});
});
});
});
Expand Down Expand Up @@ -329,7 +329,7 @@ describe('Writing app sessions', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 2, total_users: 1, new_users: 1, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "3.0", platforms: [], carriers: [], resolutions: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 2, total_users: 1, new_users: 1, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "3.0", platforms: [], carriers: [{ name: 'Unknown', value: 2, percent: 100 }], resolutions: []});
});
});
});
Expand Down Expand Up @@ -418,7 +418,7 @@ describe('Writing app sessions', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "2.0", platforms: [], carriers: [], resolutions: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "2.0", platforms: [], carriers: [{ name: 'Unknown', value: 3, percent: 100 }], resolutions: []});
});
});
});
Expand Down Expand Up @@ -507,7 +507,7 @@ describe('Writing app sessions', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "0.5 min", avg_time: "0.2 min", avg_requests: "2.5", platforms: [], carriers: [], resolutions: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "0.5 min", avg_time: "0.2 min", avg_requests: "2.5", platforms: [], carriers: [{ name: 'Unknown', value: 3, percent: 100 }], resolutions: []});
});
});
});
Expand Down Expand Up @@ -596,7 +596,7 @@ describe('Writing app sessions', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "0.5 min", avg_time: "0.2 min", avg_requests: "3.0", platforms: [], carriers: [], resolutions: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "0.5 min", avg_time: "0.2 min", avg_requests: "3.0", platforms: [], carriers: [{ name: 'Unknown', value: 3, percent: 100 }], resolutions: []});
});
});
});
Expand Down Expand Up @@ -685,7 +685,7 @@ describe('Writing app sessions', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "1.0 min", avg_time: "0.3 min", avg_requests: "3.5", platforms: [], carriers: [], resolutions: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "1.0 min", avg_time: "0.3 min", avg_requests: "3.5", platforms: [], carriers: [{ name: 'Unknown', value: 3, percent: 100 }], resolutions: []});
});
});
});
Expand Down Expand Up @@ -774,7 +774,7 @@ describe('Writing app sessions', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "1.0 min", avg_time: "0.3 min", avg_requests: "3.5", platforms: [], carriers: [], resolutions: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "1.0 min", avg_time: "0.3 min", avg_requests: "3.5", platforms: [], carriers: [{ name: 'Unknown', value: 3, percent: 100 }], resolutions: []});
});
});
});
Expand Down
21 changes: 11 additions & 10 deletions test/3.api.write/4.write.app.metrics.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ describe('Writing app metrics', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 1, total_users: 1, new_users: 1, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 1, "percent": 100}], resolutions: [], carriers: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 1, total_users: 1, new_users: 1, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 1, "percent": 100}], resolutions: [], carriers: [{ "name": 'Unknown', "value": 1, "percent": 100 }]});
});
});
});
Expand Down Expand Up @@ -186,7 +186,7 @@ describe('Writing app metrics', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 3, new_users: 3, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 1, "percent": 100}], resolutions: [{"name": "1200x800", "value": 1, "percent": 100}], carriers: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 3, new_users: 3, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 1, "percent": 100}], resolutions: [{"name": "1200x800", "value": 1, "percent": 100}], carriers: [{ "name": 'Unknown', "value": 3, "percent": 100 }]});
});
});
});
Expand Down Expand Up @@ -225,7 +225,7 @@ describe('Writing app metrics', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 4, total_users: 4, new_users: 4, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 100}], resolutions: [{"name": "1200x800", "value": 1, "percent": 100}], carriers: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 4, total_users: 4, new_users: 4, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 100}], resolutions: [{"name": "1200x800", "value": 1, "percent": 100}], carriers: [{ "name": 'Unknown', "value": 4, "percent": 100 }]});
});
});
});
Expand Down Expand Up @@ -264,7 +264,7 @@ describe('Writing app metrics', function() {
it('should success', function(done) {
var params = {"_carrier": "Vodafone"};
request
.get('/i?device_id=' + DEVICE_ID + '7&app_key=' + APP_KEY + "&begin_session=1&metrics=" + JSON.stringify(params))
.get('/i?device_id=' + DEVICE_ID + '&app_key=' + APP_KEY + "&begin_session=1&metrics=" + JSON.stringify(params))
.expect(200)
.end(function(err, res) {
if (err) {
Expand All @@ -283,7 +283,7 @@ describe('Writing app metrics', function() {
.get('/o?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID + '&method=carriers')
.expect(200)
.end(function(err, res) {
testUtils.validateMetrics(err, res, done, {meta: {"carriers": ["Vodafone"]}, "Vodafone": {"n": 1, "t": 1, "u": 1}});
testUtils.validateMetrics(err, res, done, {meta: {"carriers": ["Unknown", "Vodafone"]}, "Vodafone": {"n": 1, "t": 1, "u": 1}, "Unknown": { u: 5, n: 5, t: 5 }});
});
});
});
Expand All @@ -293,7 +293,7 @@ describe('Writing app metrics', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 6, total_users: 6, new_users: 6, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 100}], resolutions: [{"name": "1200x800", "value": 1, "percent": 100}], carriers: [{"name": "Vodafone", "value": 1, "percent": 100}]});
testUtils.validateDashboard(err, res, done, {total_sessions: 6, total_users: 6, new_users: 6, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 100}], resolutions: [{"name": "1200x800", "value": 1, "percent": 100}], carriers: [{"name": 'Unknown', "value": 5, "percent": 83.3 }, {"name": "Vodafone", "value": 1, "percent": 16.7}]});
});
});
});
Expand Down Expand Up @@ -370,7 +370,8 @@ describe('Writing app metrics', function() {
.get('/o?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID + '&method=carriers')
.expect(200)
.end(function(err, res) {
testUtils.validateMetrics(err, res, done, {meta: {"carriers": ["Vodafone", "Telecom"]}, "Vodafone": {"n": 1, "t": 1, "u": 1}, "Telecom": {"n": 1, "t": 1, "u": 1}});
// EMRE: also here, same thing with Unknown n t u
testUtils.validateMetrics(err, res, done, {meta: {"carriers": ["Vodafone", "Unknown", "Telecom"]}, "Vodafone": {"n": 1, "t": 1, "u": 1}, "Telecom": {"n": 1, "t": 1, "u": 1}, "Unknown": {n: 6, t: 6, u: 6}});
});
});
});
Expand All @@ -390,7 +391,7 @@ describe('Writing app metrics', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 8, total_users: 8, new_users: 8, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 66.7}, {"name": "IOS", "value": 1, "percent": 33.3}], resolutions: [{"name": "1200x800", "value": 1, "percent": 50}, {"name": "2048x1536", "value": 1, "percent": 50}], carriers: [{"name": "Telecom", "value": 1, "percent": 50}, {"name": "Vodafone", "value": 1, "percent": 50}]});
testUtils.validateDashboard(err, res, done, {total_sessions: 8, total_users: 8, new_users: 8, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 66.7}, {"name": "IOS", "value": 1, "percent": 33.3}], resolutions: [{"name": "1200x800", "value": 1, "percent": 50}, {"name": "2048x1536", "value": 1, "percent": 50}], carriers: [ {"name": 'Unknown', "value": 6, "percent": 75}, {"name": "Telecom", "value": 1, "percent": 12.5}, {"name": "Vodafone", "value": 1, "percent": 12.5}]});
});
});
});
Expand Down Expand Up @@ -438,7 +439,7 @@ describe('Writing app metrics', function() {
.get('/o?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID + '&method=carriers')
.expect(200)
.end(function(err, res) {
testUtils.validateMetrics(err, res, done, {meta: {"carriers": ["Vodafone", "Telecom"]}, "Vodafone": {"n": 1, "t": 1, "u": 1}, "Telecom": {"n": 2, "t": 2, "u": 2}});
testUtils.validateMetrics(err, res, done, {meta: {"carriers": ["Vodafone", 'Unknown', "Telecom"]}, "Telecom": {"n": 2, "t": 2, "u": 2}, "Unknown": {"n": 6, "t": 6, "u": 6}, "Vodafone": {"n": 1, "t": 1, "u": 1}});
});
});
});
Expand All @@ -458,7 +459,7 @@ describe('Writing app metrics', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 9, total_users: 9, new_users: 9, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 50}, {"name": "IOS", "value": 2, "percent": 50}], resolutions: [{"name": "2048x1536", "value": 2, "percent": 66.7}, {"name": "1200x800", "value": 1, "percent": 33.3}], carriers: [{"name": "Telecom", "value": 2, "percent": 66.7}, {"name": "Vodafone", "value": 1, "percent": 33.3}]});
testUtils.validateDashboard(err, res, done, {total_sessions: 9, total_users: 9, new_users: 9, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 50}, {"name": "IOS", "value": 2, "percent": 50}], resolutions: [{"name": "2048x1536", "value": 2, "percent": 66.7}, {"name": "1200x800", "value": 1, "percent": 33.3}], carriers: [{"name": 'Unknown', "value": 6, "percent": 66.7}, {"name": "Telecom", "value": 2, "percent": 22.2}, {"name": "Vodafone", "value": 1, "percent": 11.1}]});
});
});
});
Expand Down
6 changes: 3 additions & 3 deletions test/3.api.write/6.bulk.write.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ describe('Bulk writing', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "1.0 min", avg_time: "0.3 min", avg_requests: "3.0", platforms: [], carriers: [], resolutions: []});
testUtils.validateDashboard(err, res, done, {total_sessions: 3, total_users: 2, new_users: 2, total_time: "1.0 min", avg_time: "0.3 min", avg_requests: "3.0", platforms: [], carriers: [{"name": 'Unknown', "value": 3, "percent": 100}], resolutions: []});
});
});
});
Expand Down Expand Up @@ -171,7 +171,7 @@ describe('Bulk writing', function() {
.get('/o?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID + '&method=carriers')
.expect(200)
.end(function(err, res) {
testUtils.validateMetrics(err, res, done, {meta: {"carriers": ["Vodafone", "Telecom"]}, "Vodafone": {"n": 1, "t": 1, "u": 1}, "Telecom": {"n": 2, "t": 2, "u": 2}});
testUtils.validateMetrics(err, res, done, {meta: {"carriers": ["Vodafone", 'Unknown', "Telecom"]}, "Telecom": {"n": 2, "t": 2, "u": 2}, "Unknown": {"n": 6, "t": 6, "u": 6}, "Vodafone": {"n": 1, "t": 1, "u": 1}});
});
});
});
Expand All @@ -191,7 +191,7 @@ describe('Bulk writing', function() {
.get('/o/analytics/dashboard?api_key=' + API_KEY_ADMIN + '&app_id=' + APP_ID)
.expect(200)
.end(function(err, res) {
testUtils.validateDashboard(err, res, done, {total_sessions: 9, total_users: 9, new_users: 9, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 50}, {"name": "IOS", "value": 2, "percent": 50}], resolutions: [{"name": "2048x1536", "value": 2, "percent": 66.7}, {"name": "1200x800", "value": 1, "percent": 33.3}], carriers: [{"name": "Telecom", "value": 2, "percent": 66.7}, {"name": "Vodafone", "value": 1, "percent": 33.3}]});
testUtils.validateDashboard(err, res, done, {total_sessions: 9, total_users: 9, new_users: 9, total_time: "0.0 min", avg_time: "0.0 min", avg_requests: "1.0", platforms: [{"name": "Android", "value": 2, "percent": 50}, {"name": "IOS", "value": 2, "percent": 50}], resolutions: [{"name": "2048x1536", "value": 2, "percent": 66.7}, {"name": "1200x800", "value": 1, "percent": 33.3}], carriers: [{"name": 'Unknown', "value": 6, "percent": 66.7}, {"name": "Telecom", "value": 2, "percent": 22.2}, {"name": "Vodafone", "value": 1, "percent": 11.1}]});
});
});
});
Expand Down

0 comments on commit 32eb1e1

Please sign in to comment.