Use form-urlencoded npm package.

Switch from custom function to form-urlencoded to perform form url
encoding.

ARCH-390
This commit is contained in:
Robert Raposa
2019-03-12 09:20:31 -04:00
parent 61d7b4b278
commit e3c3895869
3 changed files with 19 additions and 43 deletions

46
package-lock.json generated
View File

@@ -9208,6 +9208,11 @@
"mime-types": "^2.1.12"
}
},
"form-urlencoded": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-3.0.0.tgz",
"integrity": "sha512-zSgBjyO5Yo3TCfElJKqlSBGOEq8lZjltZAYqew4X5trf4AbH4sZhBesvywy7IpD1mfbu8JS6733V3zv3YdIW1g=="
},
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -9344,8 +9349,7 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"aproba": {
"version": "1.2.0",
@@ -9366,14 +9370,12 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -9388,20 +9390,17 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"core-util-is": {
"version": "1.0.2",
@@ -9518,8 +9517,7 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"ini": {
"version": "1.3.5",
@@ -9531,7 +9529,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -9546,7 +9543,6 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -9554,14 +9550,12 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -9580,7 +9574,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -9661,8 +9654,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"object-assign": {
"version": "4.1.1",
@@ -9674,7 +9666,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@@ -9760,8 +9751,7 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -9797,7 +9787,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -9817,7 +9806,6 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -9861,14 +9849,12 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
"dev": true,
"optional": true
"dev": true
}
}
},

View File

@@ -42,6 +42,7 @@
"copy-webpack-plugin": "^4.6.0",
"email-prop-type": "^1.1.5",
"font-awesome": "^4.7.0",
"form-urlencoded": "^3.0.0",
"glob": "^7.1.3",
"history": "^4.7.2",
"i18n-iso-countries": "^3.7.8",

View File

@@ -1,3 +1,4 @@
import formurlencoded from 'form-urlencoded';
import apiClient from '../config/apiClient';
import { configuration } from '../config/environment';
import { snakeCaseObject } from '../services/utils';
@@ -6,18 +7,6 @@ import LoggingService from '../services/LoggingService';
const eventLogApiBaseUrl = `${configuration.LMS_BASE_URL}/event`;
// Uses a JSON as a source of key value pairs for x-www-form-urlencoded output.
// Note should be handled by axios, but is not built in.
// - see https://github.com/axios/axios/issues/97
function xWwwFormUrlEncoded(json) {
const data = [];
Object.keys(json).forEach((key) => {
data.push(`${encodeURIComponent(key)}=${encodeURIComponent(json[key])}`);
});
return data.join('&');
}
// Sends events to Segment and downstream
function handleTrackEvents(eventName, properties) {
// Simply forward track events to Segment
@@ -36,7 +25,7 @@ function logEvent(eventType, eventData) {
};
return apiClient.post(
eventLogApiBaseUrl,
xWwwFormUrlEncoded(serverData),
formurlencoded(serverData),
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',