@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quintype/framework",
3
- "version": "7.18.2-webengage.6",
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 --wait --await-write-finish 'client/**/*' 'server/**/*' 'isomorphic/**/*' -- ./bin-dev-scripts/sync-to.sh "
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(), async (req, res) => {
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 }));