corebasic 1.0.79 → 1.0.81

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.
Files changed (2) hide show
  1. package/libs/features.js +18 -9
  2. package/package.json +1 -1
package/libs/features.js CHANGED
@@ -42,7 +42,13 @@ export const start = async (app, url, file) => {
42
42
  try {
43
43
  await feature.handler({...req, body: {...req.body, topic} }, res)
44
44
  } catch (err) {
45
- throw {status: 500, message: "Failed to retreive data", ...err}
45
+ throw {status: 500, message: "Failed to GET feature", ...err}
46
+ }
47
+ } else if (method !== "get" && feature.bypass) {
48
+ try {
49
+ await feature.handler(topic, prepareMessage(req), req, res)
50
+ } catch (err) {
51
+ throw {status: 500, message: "Failed to POST feature", ...err}
46
52
  }
47
53
  } else
48
54
  await commandAction(req, res, topic)
@@ -69,7 +75,7 @@ export const start = async (app, url, file) => {
69
75
  Kafka.receive(`Features.${topic}`, async (topic, message) => {
70
76
 
71
77
  const timer = ms => new Promise(res => setTimeout(res, ms)) // A promise that resolves after "ms" Milliseconds
72
- topic = topic.replace('Features.','')
78
+ topic = topic.replace(/^.*Features./,'')
73
79
  while (true) {
74
80
  try {
75
81
  await Dip.update(`users.txns.${message.user}`, {_id: message.txn}, { $setOnInsert: { user: message.user, feature: message.feature, date: message.date, created: message.date, updated: message.date, status: "Queued" } }, {upsert: true}) // Can always update the status later
@@ -107,17 +113,20 @@ export const start = async (app, url, file) => {
107
113
  try { await Messaging.start(app) } catch { console.log('Messaging failed to start. Maybe missing redis') }
108
114
  }
109
115
 
110
- const commandAction = async (req, res, topic) => {
111
- let txn = req.body.txn ?? Util.uid()
116
+ function prepareMessage(req) {
117
+ let txn = req.body.txn ?? Utils.uid()
112
118
  let _id = req.body.data._id ?? txn
119
+ let {data, feature, app, user, client, version} = req.body
120
+ let params = req.params
121
+ return { data, params, feature, app, user, client, version, txn, id: _id, date: new Date().getTime() }
122
+ }
123
+ const commandAction = async (req, res, topic) => {
124
+ let message = prepareMessage(req)
113
125
  try {
114
- let {data, feature, app, user, client, version} = req.body
115
- let params = req.params
116
- await Kafka.send(`Features.${topic}`, { data, params, feature, app, user, client, version, txn, id: _id, date: new Date().getTime() }, user, { compression: Kafka.CompressionTypes.GZIP })
117
-
126
+ await Kafka.send(`Features.${topic}`, message, message.user, { compression: Kafka.CompressionTypes.GZIP })
118
127
  } catch {
119
128
  throw {status: 500, message: "Failed to queue the transaction"}
120
129
  }
121
- res.json({ data: { txn, success: true, status: "Queued" } })
130
+ res.json({ data: { txn: message.txn, success: true, status: "Queued" } })
122
131
  }
123
132
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "corebasic",
3
3
  "type": "module",
4
- "version": "1.0.79",
4
+ "version": "1.0.81",
5
5
  "description": "",
6
6
  "main": "index.js",
7
7
  "scripts": {