From 4dcda53bf2695025b66404b18d8dad194749beb6 Mon Sep 17 00:00:00 2001 From: Nikolaos Veneti Date: Thu, 24 Oct 2019 16:51:01 +0200 Subject: [PATCH 1/6] api.segment.io --- lib/metrics.js | 2 +- test/metrics.test.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/metrics.js b/lib/metrics.js index b5d34e2f..d287f7f9 100644 --- a/lib/metrics.js +++ b/lib/metrics.js @@ -20,7 +20,7 @@ function Metrics(options) { Metrics.prototype.options = function(options) { options = options || {}; - this.host = options.host || 'api.segment.io/v1'; + this.host = options.host || 'api.dreamdata.cloud/v1'; this.sampleRate = options.sampleRate || 0; // disable metrics by default. this.flushTimer = options.flushTimer || 30 * 1000 /* 30s */; this.maxQueueSize = options.maxQueueSize || 20; diff --git a/test/metrics.test.js b/test/metrics.test.js index d751ab58..ceb8d9cd 100644 --- a/test/metrics.test.js +++ b/test/metrics.test.js @@ -60,7 +60,7 @@ describe('metrics', function() { sinon.assert.calledOnce(spy); var req = spy.getCall(0).args[0]; - assert.strictEqual(req.url, 'https://api.segment.io/v1/m'); + assert.strictEqual(req.url, 'https://api.dreamdata.cloud/v1/m'); assert.strictEqual( req.requestBody, '{"series":[{"type":"Counter","metric":"foo","value":1,"tags":{}}]}' @@ -148,7 +148,7 @@ describe('metrics', function() { setTimeout(function() { sinon.assert.calledOnce(spy); var req = spy.getCall(0).args[0]; - assert.strictEqual(req.url, 'https://api.segment.io/v1/m'); + assert.strictEqual(req.url, 'https://api.dreamdata.cloud/v1/m'); assert.strictEqual( req.requestBody, '{"series":[{"type":"Counter","metric":"test1","value":1,"tags":{"foo":"bar"}}]}' @@ -165,7 +165,7 @@ describe('metrics', function() { it('should handle empty options correctly', function() { metrics.options({}); - assert.equal(metrics.host, 'api.segment.io/v1'); + assert.equal(metrics.host, 'api.dreamdata.cloud/v1'); assert.equal(metrics.sampleRate, 0); assert.equal(metrics.flushTimer, 30000); assert.equal(metrics.maxQueueSize, 20); @@ -174,9 +174,9 @@ describe('metrics', function() { }); it('should respect host option', function() { - metrics.options({ host: 'api.segment.com/v1' }); + metrics.options({ host: 'api.dreamdata.cloud/v1' }); - assert.equal(metrics.host, 'api.segment.com/v1'); + assert.equal(metrics.host, 'api.dreamdata.cloud/v1'); }); it('should respect sampleRate option', function() { From 5418708d35e2e5afa5d7290ca694a4acbae82a4d Mon Sep 17 00:00:00 2001 From: Nikolaos Veneti Date: Thu, 24 Oct 2019 16:51:37 +0200 Subject: [PATCH 2/6] change test --- test/metrics.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/metrics.test.js b/test/metrics.test.js index ceb8d9cd..8a9b8c46 100644 --- a/test/metrics.test.js +++ b/test/metrics.test.js @@ -77,7 +77,7 @@ describe('metrics', function() { sinon.assert.calledOnce(spy); var req = spy.getCall(0).args[0]; - assert.strictEqual(req.url, 'https://api.segment.io/v1/m'); + assert.strictEqual(req.url, 'https://api.dreamdata.cloud/v1/m'); assert.strictEqual( req.requestBody, '{"series":[{"type":"Counter","metric":"test1","value":1,"tags":{"foo":"bar"}},{"type":"Counter","metric":"test2","value":1,"tags":{}}]}' From 5ba4e5611572f7ca5579579adf7cf6034af6bf9f Mon Sep 17 00:00:00 2001 From: Nikolaos Veneti Date: Mon, 28 Oct 2019 10:21:38 +0100 Subject: [PATCH 3/6] updated prettier --- .prettierrc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.prettierrc b/.prettierrc index 92cde390..8cdad2c8 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,3 +1,14 @@ { - "singleQuote": true -} \ No newline at end of file + "arrowParens": "avoid", + "bracketSpacing": true, + "jsxBracketSameLine": true, + "jsxSingleQuote": true, + "printWidth": 130, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "semi": true, + "singleQuote": true, + "tabWidth": 4, + "trailingComma": "none", + "useTabs": false +} From 471431f33edfc4027d633d455e2ce1b9c59672e1 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 3 Sep 2020 09:22:35 +0200 Subject: [PATCH 4/6] Use cdn.dreamdata.cloud/api endpoint --- lib/metrics.js | 2 +- test/metrics.test.js | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/metrics.js b/lib/metrics.js index d287f7f9..e04f9326 100644 --- a/lib/metrics.js +++ b/lib/metrics.js @@ -20,7 +20,7 @@ function Metrics(options) { Metrics.prototype.options = function(options) { options = options || {}; - this.host = options.host || 'api.dreamdata.cloud/v1'; + this.host = options.host || 'cdn.dreamdata.cloud/api/v1'; this.sampleRate = options.sampleRate || 0; // disable metrics by default. this.flushTimer = options.flushTimer || 30 * 1000 /* 30s */; this.maxQueueSize = options.maxQueueSize || 20; diff --git a/test/metrics.test.js b/test/metrics.test.js index 8a9b8c46..52f7d446 100644 --- a/test/metrics.test.js +++ b/test/metrics.test.js @@ -60,7 +60,7 @@ describe('metrics', function() { sinon.assert.calledOnce(spy); var req = spy.getCall(0).args[0]; - assert.strictEqual(req.url, 'https://api.dreamdata.cloud/v1/m'); + assert.strictEqual(req.url, 'https://cdn.dreamdata.cloud/api/v1/m'); assert.strictEqual( req.requestBody, '{"series":[{"type":"Counter","metric":"foo","value":1,"tags":{}}]}' @@ -77,7 +77,7 @@ describe('metrics', function() { sinon.assert.calledOnce(spy); var req = spy.getCall(0).args[0]; - assert.strictEqual(req.url, 'https://api.dreamdata.cloud/v1/m'); + assert.strictEqual(req.url, 'https://cdn.dreamdata.cloud/api/v1/m'); assert.strictEqual( req.requestBody, '{"series":[{"type":"Counter","metric":"test1","value":1,"tags":{"foo":"bar"}},{"type":"Counter","metric":"test2","value":1,"tags":{}}]}' @@ -148,7 +148,7 @@ describe('metrics', function() { setTimeout(function() { sinon.assert.calledOnce(spy); var req = spy.getCall(0).args[0]; - assert.strictEqual(req.url, 'https://api.dreamdata.cloud/v1/m'); + assert.strictEqual(req.url, 'https://cdn.dreamdata.cloud/api/v1/m'); assert.strictEqual( req.requestBody, '{"series":[{"type":"Counter","metric":"test1","value":1,"tags":{"foo":"bar"}}]}' @@ -165,7 +165,7 @@ describe('metrics', function() { it('should handle empty options correctly', function() { metrics.options({}); - assert.equal(metrics.host, 'api.dreamdata.cloud/v1'); + assert.equal(metrics.host, 'cdn.dreamdata.cloud/api/v1'); assert.equal(metrics.sampleRate, 0); assert.equal(metrics.flushTimer, 30000); assert.equal(metrics.maxQueueSize, 20); @@ -174,9 +174,9 @@ describe('metrics', function() { }); it('should respect host option', function() { - metrics.options({ host: 'api.dreamdata.cloud/v1' }); + metrics.options({ host: 'cdn.dreamdata.cloud/api/v1' }); - assert.equal(metrics.host, 'api.dreamdata.cloud/v1'); + assert.equal(metrics.host, 'cdn.dreamdata.cloud/api/v1'); }); it('should respect sampleRate option', function() { From 7a62d4083e585e98b1d16538e171957d2428924c Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 13 Oct 2020 11:42:42 +0200 Subject: [PATCH 5/6] Fix: call identify if trait contains an email address --- lib/analytics.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/analytics.js b/lib/analytics.js index 1817fa3e..c1c20595 100644 --- a/lib/analytics.js +++ b/lib/analytics.js @@ -792,7 +792,7 @@ Analytics.prototype._parseQuery = function(query) { var traits = pickPrefix('ajs_trait_', q); var props = pickPrefix('ajs_prop_', q); // Trigger based on callable parameters in the URL - if (q.ajs_uid) this.identify(q.ajs_uid, traits); + if (q.ajs_uid || q.ajs_trait_email) this.identify(q.ajs_uid, traits); if (q.ajs_event) this.track(q.ajs_event, props); if (q.ajs_aid) user.anonymousId(q.ajs_aid); return this; From ab0dae0989f6a212c72d049208c642bfb315e9b4 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 13 Oct 2020 11:44:11 +0200 Subject: [PATCH 6/6] Call group event based on query string API --- lib/analytics.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/analytics.js b/lib/analytics.js index c1c20595..d0acd5fc 100644 --- a/lib/analytics.js +++ b/lib/analytics.js @@ -791,8 +791,10 @@ Analytics.prototype._parseQuery = function(query) { // Create traits and properties objects, populate from querysting params var traits = pickPrefix('ajs_trait_', q); var props = pickPrefix('ajs_prop_', q); + var group_traits = pickPrefix('ajs_group_', q); // Trigger based on callable parameters in the URL if (q.ajs_uid || q.ajs_trait_email) this.identify(q.ajs_uid, traits); + if (q.ajs_gid || q.ajs_group_website) this.group(q.ajs_gid, group_traits); if (q.ajs_event) this.track(q.ajs_event, props); if (q.ajs_aid) user.anonymousId(q.ajs_aid); return this;