@webex/internal-plugin-support 3.0.0-beta.40 → 3.0.0-beta.401

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/support.js CHANGED
@@ -129,7 +129,7 @@ var Support = _webexCore.WebexPlugin.extend({
129
129
  * @returns {array}
130
130
  */
131
131
  _constructFileMetadata: function _constructFileMetadata(metadata) {
132
- var metadataArray = ['locusId', 'callStart', 'feedbackId', 'correlationId', 'meetingId', 'surveySessionId'].map(function (key) {
132
+ var metadataArray = ['locusId', 'appVersion', 'callStart', 'feedbackId', 'correlationId', 'meetingId', 'surveySessionId', 'productAreaTag', 'issueTypeTag', 'locussessionid', 'autoupload'].map(function (key) {
133
133
  if (metadata[key]) {
134
134
  return {
135
135
  key: key,
@@ -146,6 +146,12 @@ var Support = _webexCore.WebexPlugin.extend({
146
146
  value: this.webex.sessionId
147
147
  });
148
148
  }
149
+ if (this.webex.internal.support.config.appVersion) {
150
+ metadataArray.push({
151
+ key: 'appVersion',
152
+ value: this.webex.internal.support.config.appVersion
153
+ });
154
+ }
149
155
  if (this.webex.internal.device.userId) {
150
156
  metadataArray.push({
151
157
  key: 'userId',
@@ -160,7 +166,7 @@ var Support = _webexCore.WebexPlugin.extend({
160
166
  }
161
167
  return metadataArray;
162
168
  },
163
- version: "3.0.0-beta.40"
169
+ version: "3.0.0-beta.401"
164
170
  });
165
171
  var _default = Support;
166
172
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["Support","WebexPlugin","extend","namespace","getFeedbackUrl","options","request","method","api","resource","body","appVersion","config","appType","feedbackId","uuid","v4","languageCode","then","res","url","getSupportUrl","webex","qs","submitLogs","metadata","logs","metadataArray","_constructFileMetadata","logger","sdkBuffer","clientBuffer","buffer","formatLogs","filename","locusId","callStart","sessionId","userId","credentials","getUserToken","catch","getClientToken","token","headers","authorization","toString","initalOpts","service","finalOpts","file","shouldAttemptReauth","phases","initialize","upload","$uri","session","tempURL","finalize","$body","logFilename","data","internal","device","map","key","value","filter","entry","Boolean","push","orgId"],"sources":["support.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\nimport {defaults} from 'lodash';\nimport uuid from 'uuid';\n\nconst Support = WebexPlugin.extend({\n namespace: 'Support',\n\n getFeedbackUrl(options) {\n options = options || {};\n\n return this.request({\n method: 'POST',\n api: 'conversation',\n resource: 'users/deskFeedbackUrl',\n body: defaults(options, {\n appVersion: this.config.appVersion,\n appType: this.config.appType,\n feedbackId: options.feedbackId || uuid.v4(),\n languageCode: this.config.languageCode,\n }),\n }).then((res) => res.body.url);\n },\n\n getSupportUrl() {\n return this.webex\n .request({\n method: 'GET',\n api: 'conversation',\n resource: 'users/deskSupportUrl',\n qs: {\n languageCode: this.config.languageCode,\n },\n })\n .then((res) => res.body.url);\n },\n\n submitLogs(metadata, logs) {\n const metadataArray = this._constructFileMetadata(metadata);\n\n // this is really testing that Ampersand is fully ready. once it's ready, these exist\n if (\n !logs &&\n this.webex.logger.sdkBuffer &&\n this.webex.logger.clientBuffer &&\n this.webex.logger.buffer\n ) {\n logs = this.webex.logger.formatLogs();\n }\n\n let filename;\n\n if (metadata.locusId && metadata.callStart) {\n filename = `${metadata.locusId}_${metadata.callStart}.txt`;\n } else {\n filename = `${this.webex.sessionId}.txt`;\n }\n\n let userId;\n\n return this.webex.credentials\n .getUserToken()\n .catch(() => this.webex.credentials.getClientToken())\n .then(async (token) => {\n const headers = {authorization: token.toString()};\n\n const initalOpts = {\n service: 'clientLogs',\n resource: 'logs/urls',\n };\n\n const finalOpts = {\n service: 'clientLogs',\n resource: 'logs/meta',\n };\n\n const options = defaults(initalOpts, {\n file: logs,\n shouldAttemptReauth: false,\n headers,\n phases: {\n initialize: {\n body: {\n file: filename,\n },\n },\n upload: {\n $uri: (session) => session.tempURL,\n },\n finalize: defaults(finalOpts, {\n $body: (session) => {\n userId = session.userId;\n\n return {\n filename: session.logFilename,\n data: metadataArray,\n userId: this.webex.internal.device.userId || session.userId,\n };\n },\n }),\n },\n });\n\n return this.webex.upload(options);\n })\n .then((body) => {\n if (userId && !body.userId) {\n body.userId = userId;\n }\n\n return body;\n });\n },\n\n /**\n * Constructs an array of key-value pairs for log upload.\n * @param {*} metadata\n * @returns {array}\n */\n _constructFileMetadata(metadata) {\n const metadataArray = [\n 'locusId',\n 'callStart',\n 'feedbackId',\n 'correlationId',\n 'meetingId',\n 'surveySessionId',\n ]\n .map((key) => {\n if (metadata[key]) {\n return {\n key,\n value: metadata[key],\n };\n }\n\n return null;\n })\n .filter((entry) => Boolean(entry));\n\n if (this.webex.sessionId) {\n metadataArray.push({\n key: 'trackingId',\n value: this.webex.sessionId,\n });\n }\n\n if (this.webex.internal.device.userId) {\n metadataArray.push({\n key: 'userId',\n value: this.webex.internal.device.userId,\n });\n }\n\n if (this.webex.internal.device.orgId) {\n metadataArray.push({\n key: 'orgId',\n value: this.webex.internal.device.orgId,\n });\n }\n\n return metadataArray;\n },\n});\n\nexport default Support;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Support","WebexPlugin","extend","namespace","getFeedbackUrl","options","request","method","api","resource","body","appVersion","config","appType","feedbackId","uuid","v4","languageCode","then","res","url","getSupportUrl","webex","qs","submitLogs","metadata","logs","metadataArray","_constructFileMetadata","logger","sdkBuffer","clientBuffer","buffer","formatLogs","filename","locusId","callStart","sessionId","userId","credentials","getUserToken","catch","getClientToken","token","headers","authorization","toString","initalOpts","service","finalOpts","file","shouldAttemptReauth","phases","initialize","upload","$uri","session","tempURL","finalize","$body","logFilename","data","internal","device","map","key","value","filter","entry","Boolean","push","support","orgId"],"sources":["support.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\nimport {defaults} from 'lodash';\nimport uuid from 'uuid';\n\nconst Support = WebexPlugin.extend({\n namespace: 'Support',\n\n getFeedbackUrl(options) {\n options = options || {};\n\n return this.request({\n method: 'POST',\n api: 'conversation',\n resource: 'users/deskFeedbackUrl',\n body: defaults(options, {\n appVersion: this.config.appVersion,\n appType: this.config.appType,\n feedbackId: options.feedbackId || uuid.v4(),\n languageCode: this.config.languageCode,\n }),\n }).then((res) => res.body.url);\n },\n\n getSupportUrl() {\n return this.webex\n .request({\n method: 'GET',\n api: 'conversation',\n resource: 'users/deskSupportUrl',\n qs: {\n languageCode: this.config.languageCode,\n },\n })\n .then((res) => res.body.url);\n },\n\n submitLogs(metadata, logs) {\n const metadataArray = this._constructFileMetadata(metadata);\n\n // this is really testing that Ampersand is fully ready. once it's ready, these exist\n if (\n !logs &&\n this.webex.logger.sdkBuffer &&\n this.webex.logger.clientBuffer &&\n this.webex.logger.buffer\n ) {\n logs = this.webex.logger.formatLogs();\n }\n\n let filename;\n\n if (metadata.locusId && metadata.callStart) {\n filename = `${metadata.locusId}_${metadata.callStart}.txt`;\n } else {\n filename = `${this.webex.sessionId}.txt`;\n }\n\n let userId;\n\n return this.webex.credentials\n .getUserToken()\n .catch(() => this.webex.credentials.getClientToken())\n .then(async (token) => {\n const headers = {authorization: token.toString()};\n\n const initalOpts = {\n service: 'clientLogs',\n resource: 'logs/urls',\n };\n\n const finalOpts = {\n service: 'clientLogs',\n resource: 'logs/meta',\n };\n\n const options = defaults(initalOpts, {\n file: logs,\n shouldAttemptReauth: false,\n headers,\n phases: {\n initialize: {\n body: {\n file: filename,\n },\n },\n upload: {\n $uri: (session) => session.tempURL,\n },\n finalize: defaults(finalOpts, {\n $body: (session) => {\n userId = session.userId;\n\n return {\n filename: session.logFilename,\n data: metadataArray,\n userId: this.webex.internal.device.userId || session.userId,\n };\n },\n }),\n },\n });\n\n return this.webex.upload(options);\n })\n .then((body) => {\n if (userId && !body.userId) {\n body.userId = userId;\n }\n\n return body;\n });\n },\n\n /**\n * Constructs an array of key-value pairs for log upload.\n * @param {*} metadata\n * @returns {array}\n */\n _constructFileMetadata(metadata) {\n const metadataArray = [\n 'locusId',\n 'appVersion',\n 'callStart',\n 'feedbackId',\n 'correlationId',\n 'meetingId',\n 'surveySessionId',\n 'productAreaTag',\n 'issueTypeTag',\n 'locussessionid',\n 'autoupload',\n ]\n .map((key) => {\n if (metadata[key]) {\n return {\n key,\n value: metadata[key],\n };\n }\n\n return null;\n })\n .filter((entry) => Boolean(entry));\n\n if (this.webex.sessionId) {\n metadataArray.push({\n key: 'trackingId',\n value: this.webex.sessionId,\n });\n }\n\n if (this.webex.internal.support.config.appVersion) {\n metadataArray.push({\n key: 'appVersion',\n value: this.webex.internal.support.config.appVersion,\n });\n }\n\n if (this.webex.internal.device.userId) {\n metadataArray.push({\n key: 'userId',\n value: this.webex.internal.device.userId,\n });\n }\n\n if (this.webex.internal.device.orgId) {\n metadataArray.push({\n key: 'orgId',\n value: this.webex.internal.device.orgId,\n });\n }\n\n return metadataArray;\n },\n});\n\nexport default Support;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-support",
3
- "version": "3.0.0-beta.40",
3
+ "version": "3.0.0-beta.401",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "author": "nickclar <nickclar@cisco.com>",
@@ -21,14 +21,14 @@
21
21
  ]
22
22
  },
23
23
  "dependencies": {
24
- "@webex/internal-plugin-device": "3.0.0-beta.40",
25
- "@webex/internal-plugin-search": "3.0.0-beta.40",
26
- "@webex/internal-plugin-support": "3.0.0-beta.40",
27
- "@webex/test-helper-chai": "3.0.0-beta.40",
28
- "@webex/test-helper-file": "3.0.0-beta.40",
29
- "@webex/test-helper-mock-webex": "3.0.0-beta.40",
30
- "@webex/test-helper-test-users": "3.0.0-beta.40",
31
- "@webex/webex-core": "3.0.0-beta.40",
24
+ "@webex/internal-plugin-device": "3.0.0-beta.401",
25
+ "@webex/internal-plugin-search": "3.0.0-beta.401",
26
+ "@webex/internal-plugin-support": "3.0.0-beta.401",
27
+ "@webex/test-helper-chai": "3.0.0-beta.401",
28
+ "@webex/test-helper-file": "3.0.0-beta.401",
29
+ "@webex/test-helper-mock-webex": "3.0.0-beta.401",
30
+ "@webex/test-helper-test-users": "3.0.0-beta.401",
31
+ "@webex/webex-core": "3.0.0-beta.401",
32
32
  "lodash": "^4.17.21",
33
33
  "uuid": "^3.3.2"
34
34
  }
package/src/support.js CHANGED
@@ -123,11 +123,16 @@ const Support = WebexPlugin.extend({
123
123
  _constructFileMetadata(metadata) {
124
124
  const metadataArray = [
125
125
  'locusId',
126
+ 'appVersion',
126
127
  'callStart',
127
128
  'feedbackId',
128
129
  'correlationId',
129
130
  'meetingId',
130
131
  'surveySessionId',
132
+ 'productAreaTag',
133
+ 'issueTypeTag',
134
+ 'locussessionid',
135
+ 'autoupload',
131
136
  ]
132
137
  .map((key) => {
133
138
  if (metadata[key]) {
@@ -148,6 +153,13 @@ const Support = WebexPlugin.extend({
148
153
  });
149
154
  }
150
155
 
156
+ if (this.webex.internal.support.config.appVersion) {
157
+ metadataArray.push({
158
+ key: 'appVersion',
159
+ value: this.webex.internal.support.config.appVersion,
160
+ });
161
+ }
162
+
151
163
  if (this.webex.internal.device.userId) {
152
164
  metadataArray.push({
153
165
  key: 'userId',
@@ -22,18 +22,23 @@ describe('plugin-support', function () {
22
22
 
23
23
  webex.internal.device.userId = 'user-abc-123';
24
24
  webex.internal.device.orgId = 'org-abc-123';
25
+ webex.internal.support.config.appVersion = '0.0.0.0';
25
26
  });
26
27
 
27
28
  describe('#_constructFileMetadata()', () => {
28
29
  it('constructs a sample File Meta Data', () => {
29
30
  const result = webex.internal.support._constructFileMetadata({});
30
31
 
31
- assert.equal(result.length, 3);
32
+ assert.equal(result.length, 4);
32
33
  assert.deepEqual(result, [
33
34
  {
34
35
  key: 'trackingId',
35
36
  value: 'mock-webex_88888888-4444-4444-4444-aaaaaaaaaaaa',
36
37
  },
38
+ {
39
+ key: 'appVersion',
40
+ value: '0.0.0.0',
41
+ },
37
42
  {
38
43
  key: 'userId',
39
44
  value: webex.internal.device.userId,
@@ -76,6 +81,78 @@ describe('plugin-support', function () {
76
81
 
77
82
  assert.equal(found?.value, surveySessionId);
78
83
  });
84
+
85
+ it('sends productAreaTag if specified in metadata', () => {
86
+ const productAreaTag = 'product-area-tag';
87
+ const result = webex.internal.support._constructFileMetadata({productAreaTag});
88
+ const found = result.find((attr) => attr.key === 'productAreaTag');
89
+
90
+ assert.equal(found?.value, productAreaTag);
91
+ });
92
+
93
+ it('sends issueTypeTag if specified in metadata', () => {
94
+ const issueTypeTag = 'issueTypeTag';
95
+ const result = webex.internal.support._constructFileMetadata({issueTypeTag});
96
+ const found = result.find((attr) => attr.key === 'issueTypeTag');
97
+
98
+ assert.equal(found?.value, issueTypeTag);
99
+ });
100
+
101
+ it('sends locussessionid if specified in metadata', () => {
102
+ const locussessionid = 'locussessionid';
103
+ const result = webex.internal.support._constructFileMetadata({locussessionid});
104
+ const found = result.find((attr) => attr.key === 'locussessionid');
105
+
106
+ assert.equal(found?.value, locussessionid);
107
+ });
108
+
109
+ it('sends locusId if specified in metadata', () => {
110
+ const locusId = 'locusId';
111
+ const result = webex.internal.support._constructFileMetadata({locusId});
112
+ const found = result.find((attr) => attr.key === 'locusId');
113
+
114
+ assert.equal(found?.value, locusId);
115
+ });
116
+
117
+ it('sends callStart if specified in metadata', () => {
118
+ const callStart = 'callStart';
119
+ const result = webex.internal.support._constructFileMetadata({callStart});
120
+ const found = result.find((attr) => attr.key === 'callStart');
121
+
122
+ assert.equal(found?.value, callStart);
123
+ });
124
+
125
+ it('sends feedbackId if specified in metadata', () => {
126
+ const feedbackId = 'feedbackId';
127
+ const result = webex.internal.support._constructFileMetadata({feedbackId});
128
+ const found = result.find((attr) => attr.key === 'feedbackId');
129
+
130
+ assert.equal(found?.value, feedbackId);
131
+ });
132
+
133
+ it('sends correlationId if specified in metadata', () => {
134
+ const correlationId = 'correlationId';
135
+ const result = webex.internal.support._constructFileMetadata({correlationId});
136
+ const found = result.find((attr) => attr.key === 'correlationId');
137
+
138
+ assert.equal(found?.value, correlationId);
139
+ });
140
+
141
+ it('sends meetingId if specified in metadata', () => {
142
+ const meetingId = 'meetingId';
143
+ const result = webex.internal.support._constructFileMetadata({meetingId});
144
+ const found = result.find((attr) => attr.key === 'meetingId');
145
+
146
+ assert.equal(found?.value, meetingId);
147
+ });
148
+
149
+ it('sends autoupload if specified in metadata', () => {
150
+ const autoupload = 'autoupload';
151
+ const result = webex.internal.support._constructFileMetadata({autoupload});
152
+ const found = result.find((attr) => attr.key === 'autoupload');
153
+
154
+ assert.equal(found?.value, autoupload);
155
+ });
79
156
  });
80
157
 
81
158
  describe('#submitLogs()', () => {