@quintype/framework 7.18.2-webengage.6 → 7.18.2-webengage.7
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/package.json +2 -2
- package/server/handlers/webengage.js +41 -0
- package/server/routes.js +2 -24
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quintype/framework",
|
|
3
|
-
"version": "7.18.2-webengage.
|
|
3
|
+
"version": "7.18.2-webengage.7",
|
|
4
4
|
"description": "Libraries to help build Quintype Node.js apps",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"engines": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"coverage": "nyc --all npm test",
|
|
15
15
|
"coverage-html": "nyc --all --reporter=html npm test",
|
|
16
16
|
"docs": "rimraf docs && jsdoc -c jsdoc.json",
|
|
17
|
-
"sync-files-to": "npx onchange --verbose --
|
|
17
|
+
"sync-files-to": "npx onchange --verbose --await-write-finish=2000 'client/**/*' 'server/**/*' 'isomorphic/**/*' -- ./bin-dev-scripts/sync-to.sh "
|
|
18
18
|
},
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const request = require("request-promise");
|
|
2
|
+
|
|
3
|
+
exports.webengageApi = async function webengageApi(req, res) {
|
|
4
|
+
const webengageLicenseCode = "311c5229";
|
|
5
|
+
const webengageApiKey = "2d5cb58e-7160-4f2a-b423-0c0d8007dd9c";
|
|
6
|
+
let eventData = {};
|
|
7
|
+
const eventName = req.body.v1.event.name;
|
|
8
|
+
|
|
9
|
+
switch (eventName) {
|
|
10
|
+
case "story-publish":
|
|
11
|
+
const { "author-name": author, headline } = req.body;
|
|
12
|
+
eventData = { author, headline };
|
|
13
|
+
break;
|
|
14
|
+
case "push-notification-triggered":
|
|
15
|
+
const { title, message } = req.body;
|
|
16
|
+
eventData = { title, message };
|
|
17
|
+
break;
|
|
18
|
+
default:
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
console.log("hit /webengage-api by syncing ---->", eventName, eventData);
|
|
23
|
+
const url = `https://api.webengage.com/v1/accounts/${webengageLicenseCode}/events`;
|
|
24
|
+
try {
|
|
25
|
+
await request({
|
|
26
|
+
uri: url,
|
|
27
|
+
method: "POST",
|
|
28
|
+
headers: {
|
|
29
|
+
Authorization: `Bearer ${webengageApiKey}`,
|
|
30
|
+
"content-type": "application/json",
|
|
31
|
+
},
|
|
32
|
+
body: { eventName: eventName, eventData: { eventData }, userId: eventName },
|
|
33
|
+
json: true,
|
|
34
|
+
});
|
|
35
|
+
res.status(200).send("webengage event triggered successfully");
|
|
36
|
+
return;
|
|
37
|
+
} catch (error) {
|
|
38
|
+
res.status(500).send("webengage event failed");
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
};
|
package/server/routes.js
CHANGED
|
@@ -23,12 +23,12 @@ const { redirectStory } = require("./handlers/story-redirect");
|
|
|
23
23
|
const { simpleJsonHandler } = require("./handlers/simple-json-handler");
|
|
24
24
|
const { makePickComponentSync } = require("../isomorphic/impl/make-pick-component-sync");
|
|
25
25
|
const { registerFCMTopic } = require("./handlers/fcm-registration-handler");
|
|
26
|
+
const { webengageApi } = require("./handlers/webengage");
|
|
26
27
|
const rp = require("request-promise");
|
|
27
28
|
const bodyParser = require("body-parser");
|
|
28
29
|
const get = require("lodash/get");
|
|
29
30
|
const { URL } = require("url");
|
|
30
31
|
const prerender = require("@quintype/prerender-node");
|
|
31
|
-
const request = require("request-promise");
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* *upstreamQuintypeRoutes* connects various routes directly to the upstream API server.
|
|
@@ -430,29 +430,7 @@ exports.isomorphicRoutes = function isomorphicRoutes(
|
|
|
430
430
|
|
|
431
431
|
app.post("/register-fcm-topic", bodyParser.json(), withConfig(registerFCMTopic, { publisherConfig, fcmServerKey }));
|
|
432
432
|
|
|
433
|
-
app.post("/webengage-api", bodyParser.json(),
|
|
434
|
-
const { headline, subheadline, slug } = req.body;
|
|
435
|
-
console.log("hit /webengage-api", webengageLicenseCode, webengageApiKey, req.body);
|
|
436
|
-
const url = `https://api.webengage.com/v2/accounts/${webengageLicenseCode}/business/save-event`;
|
|
437
|
-
try {
|
|
438
|
-
await request({
|
|
439
|
-
uri: url,
|
|
440
|
-
method: "POST",
|
|
441
|
-
headers: {
|
|
442
|
-
Authorization: `Bearer ${webengageApiKey}`,
|
|
443
|
-
"content-type": "application/json",
|
|
444
|
-
},
|
|
445
|
-
body: { eventName: "story_published", eventData: { author_name: "malibu", story_id: 123 } },
|
|
446
|
-
json: true,
|
|
447
|
-
});
|
|
448
|
-
res.status(200).send("webengage event triggered successfully");
|
|
449
|
-
return;
|
|
450
|
-
} catch (error) {
|
|
451
|
-
console.log("The error is -->", error);
|
|
452
|
-
res.status(500).send("webengage event Failed");
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
|
-
});
|
|
433
|
+
app.post("/webengage-api", bodyParser.json(), webengageApi);
|
|
456
434
|
|
|
457
435
|
if (manifestFn) {
|
|
458
436
|
app.get("/manifest.json", withConfig(handleManifest, { manifestFn, logError }));
|