@tiledesk/tiledesk-server 2.4.100 → 2.4.101

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,10 @@
5
5
  🚀 IN PRODUCTION 🚀
6
6
  (https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
7
7
 
8
+ # 2.4.101
9
+ - Added new route for knowledge base
10
+ - Bug fix: conflicts with old knowledge base
11
+
8
12
  # 2.4.100
9
13
  - Updated tybot-connector to 0.2.50
10
14
  - Added new route for knowledge base
package/app.js CHANGED
@@ -81,6 +81,15 @@ mongoose.set('useFindAndModify', false); // https://mongoosejs.com/docs/deprecat
81
81
  mongoose.set('useCreateIndex', true);
82
82
  mongoose.set('useUnifiedTopology', false);
83
83
 
84
+ // CONNECT REDIS - CHECK IT
85
+ const { TdCache } = require('./utils/TdCache');
86
+ let tdCache = new TdCache({
87
+ host: process.env.CACHE_REDIS_HOST,
88
+ port: process.env.CACHE_REDIS_PORT,
89
+ password: process.env.CACHE_REDIS_PASSWORD
90
+ });
91
+
92
+ tdCache.connect();
84
93
 
85
94
  // ROUTES DECLARATION
86
95
  var troubleshooting = require('./routes/troubleshooting');
@@ -113,6 +122,8 @@ var key = require('./routes/key');
113
122
  var widgets = require('./routes/widget');
114
123
  var widgetsLoader = require('./routes/widgetLoader');
115
124
  var openai = require('./routes/openai');
125
+ var quotes = require('./routes/quotes');
126
+ var integration = require('./routes/integration')
116
127
  var kbsettings = require('./routes/kbsettings');
117
128
  var kb = require('./routes/kb');
118
129
 
@@ -158,7 +169,7 @@ botEvent.listen(); //queued but disabled
158
169
 
159
170
  var trainingService = require('./services/trainingService');
160
171
  trainingService.start();
161
-
172
+
162
173
  // job_here
163
174
 
164
175
  var geoService = require('./services/geoService');
@@ -196,6 +207,10 @@ var IPFilter = require('./middleware/ipFilter');
196
207
  var BanUserNotifier = require('./services/banUserNotifier');
197
208
  BanUserNotifier.listen();
198
209
  const { ChatbotService } = require('./services/chatbotService');
210
+ const { QuoteManager } = require('./services/QuoteManager');
211
+
212
+ let qm = new QuoteManager({ tdCache: tdCache });
213
+ qm.start();
199
214
 
200
215
  var modulesManager = undefined;
201
216
  try {
@@ -224,13 +239,13 @@ if (process.env.CREATE_INITIAL_DATA !== "false") {
224
239
 
225
240
  var app = express();
226
241
 
227
-
228
-
229
242
  // view engine setup
230
243
  app.set('views', path.join(__dirname, 'views'));
231
244
  app.set('view engine', 'jade');
232
245
 
233
246
  app.set('chatbot_service', new ChatbotService())
247
+ app.set('redis_client', tdCache);
248
+ app.set('quote_manager', qm);
234
249
 
235
250
 
236
251
  // TODO DELETE IT IN THE NEXT RELEASE
@@ -255,7 +270,6 @@ if (process.env.ENABLE_ALTERNATIVE_CORS_MIDDLEWARE === "true") {
255
270
  // app.use(morgan('combined'));
256
271
 
257
272
 
258
-
259
273
  // app.use(bodyParser.json());
260
274
 
261
275
  // https://stackoverflow.com/questions/18710225/node-js-get-raw-request-body-using-express
@@ -297,6 +311,7 @@ if (process.env.DISABLE_SESSION_STRATEGY==true || process.env.DISABLE_SESSION_S
297
311
 
298
312
  if (process.env.ENABLE_REDIS_SESSION==true || process.env.ENABLE_REDIS_SESSION=="true" ) {
299
313
 
314
+ console.log("Starting redis...") // errors occurs
300
315
  // Initialize client.
301
316
  // let redisClient = createClient()
302
317
  // redisClient.connect().catch(console.error)
@@ -343,6 +358,24 @@ app.options('*', cors());
343
358
  // const customRedisRateLimiter = require("./rateLimiter").customRedisRateLimiter;
344
359
  // app.use(customRedisRateLimiter);
345
360
 
361
+ // MIDDLEWARE FOR REQUESTS QUOTE
362
+ // app.use('/:projectid/requests', function (req, res, next) {
363
+
364
+ // console.log("MIDDLEWARE FIRED ---> REQUESTS");
365
+ // console.log("(Requests Middleware) method: ", req.method);
366
+ // if (req.method === 'POST') {
367
+
368
+ // let quoteManager = new QuoteManager({ project: mockProject, tdCache: mockTdCache } )
369
+
370
+ // } else {
371
+ // next();
372
+ // }
373
+
374
+
375
+ // });
376
+
377
+
378
+
346
379
  if (process.env.ROUTELOGGER_ENABLED==="true") {
347
380
  winston.info("RouterLogger enabled ");
348
381
  app.use(function (req, res, next) {
@@ -386,10 +419,10 @@ if (process.env.ROUTELOGGER_ENABLED==="true") {
386
419
  app.get('/', function (req, res) {
387
420
  res.send('Hello from Tiledesk server. It\'s UP. See the documentation here http://developer.tiledesk.com');
388
421
  });
389
-
390
422
 
391
423
 
392
424
 
425
+
393
426
  var projectIdSetter = function (req, res, next) {
394
427
  var projectid = req.params.projectid;
395
428
  winston.debug("projectIdSetter projectid: "+ projectid);
@@ -439,8 +472,6 @@ var projectSetter = function (req, res, next) {
439
472
  }
440
473
 
441
474
 
442
-
443
-
444
475
  // app.use('/admin', admin);
445
476
 
446
477
  //oauth2
@@ -560,7 +591,12 @@ app.use('/:projectid/emails',[passport.authenticate(['basic', 'jwt'], { session:
560
591
  app.use('/:projectid/properties',[passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], property);
561
592
  app.use('/:projectid/segments',[passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], segment);
562
593
 
563
- app.use('/:projectid/openai', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent')], openai);
594
+ // app.use('/:projectid/openai', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent')], openai);
595
+ app.use('/:projectid/openai', openai);
596
+ app.use('/:projectid/quotes', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], quotes)
597
+
598
+ app.use('/:projectid/integration', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], integration )
599
+
564
600
  app.use('/:projectid/kbsettings', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], kbsettings);
565
601
  app.use('/:projectid/kb', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('admin', ['bot','subscription'])], kb);
566
602
 
@@ -601,7 +637,7 @@ app.use(function (err, req, res, next) {
601
637
 
602
638
 
603
639
 
604
-
640
+ // mettere middleware qui per le quote
605
641
 
606
642
 
607
643
 
@@ -0,0 +1,13 @@
1
+
2
+ const EventEmitter = require('events');
3
+
4
+ class EmailEvent extends EventEmitter {
5
+ constructor() {
6
+ super();
7
+ this.queueEnabled = false;
8
+ }
9
+ }
10
+
11
+ const emailEvent = new EmailEvent();
12
+
13
+ module.exports = emailEvent;
@@ -0,0 +1,13 @@
1
+ const EventEmitter = require('events');
2
+
3
+ let winston = require('../config/winston');
4
+
5
+ class IntegrationEvent extends EventEmitter {
6
+ constructor() {
7
+ super();
8
+ }
9
+ }
10
+
11
+ const integrationEvent = new IntegrationEvent();
12
+
13
+ module.exports = integrationEvent;
@@ -0,0 +1,23 @@
1
+ var mongoose = require('mongoose');
2
+ var Schema = mongoose.Schema;
3
+ var winston = require('../config/winston');
4
+
5
+ var IntegrationsSchema = new Schema({
6
+ id_project: {
7
+ type: String,
8
+ required: true,
9
+ index: true
10
+ },
11
+ name: {
12
+ type: String,
13
+ required: true
14
+ },
15
+ value: {
16
+ type: Object,
17
+ required: true,
18
+ default: {}
19
+ }
20
+ })
21
+
22
+
23
+ module.exports = mongoose.model('integration', IntegrationsSchema);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tiledesk/tiledesk-server",
3
3
  "description": "The Tiledesk server module",
4
- "version": "2.4.100",
4
+ "version": "2.4.101",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -6,6 +6,7 @@
6
6
  var departmentEvent = require("../../event/departmentEvent");
7
7
  var authEvent = require("../../event/authEvent");
8
8
  var labelEvent = require("../../event/labelEvent");
9
+ var integrationEvent = require("../../event/integrationEvent");
9
10
 
10
11
  var triggerEventEmitter = require("../trigger/event/triggerEventEmitter");
11
12
  var subscriptionEvent = require("../../event/subscriptionEvent");
@@ -725,6 +726,17 @@
725
726
  });
726
727
  });
727
728
 
729
+ // l'evento è relativo a tutte le integrazioni, è sufficiente solo un evento
730
+ // per create, update, delete di una singola creation
731
+ integrationEvent.on("integration.update", (integrations, id_project) => {
732
+ let key = "project:" + id_project + ":integrations";
733
+ winston.verbose("Creating cache for integration.create with key: " + key);
734
+ client.set(key, integrations, cacheUtil.longTTL, (err, reply) => {
735
+ winston.verbose("Created cache for integration.create", {err: err} );
736
+ winston.debug("Created cache for integration.create reply", reply);
737
+ })
738
+ })
739
+
728
740
  // fai cache per subscription.create, .update .delete
729
741
 
730
742
 
@@ -118,6 +118,7 @@ listen() {
118
118
  // send an email only if offline and has an email (send also to followers)
119
119
  return that.sendUserEmail(message.id_project, message);
120
120
  } else { //send email to followers
121
+ winston.debug("send direct email****");
121
122
 
122
123
  that.sendToFollower(message.id_project, message);
123
124
 
package/routes/auth.js CHANGED
@@ -296,12 +296,14 @@ router.post('/signinWithCustomToken', [
296
296
 
297
297
  var newUser;
298
298
  try {
299
- newUser = await userService.signup(req.user.email, uuidv4(), req.user.firstname, req.user.lastname, false);
299
+
300
+ // Bug with email in camelcase
301
+ newUser = await userService.signup(req.user.email.toLowerCase(), uuidv4(), req.user.firstname, req.user.lastname, false);
300
302
  } catch(e) {
301
303
  winston.debug('error signup already exists??: ')
302
304
 
303
305
  if (e.code = "E11000") {
304
- newUser = await User.findOne({email: req.user.email , status: 100}).exec();
306
+ newUser = await User.findOne({email: req.user.email.toLowerCase(), status: 100}).exec();
305
307
  winston.debug('signup found')
306
308
 
307
309
  }
@@ -373,7 +375,11 @@ router.post('/signinWithCustomToken', [
373
375
 
374
376
  }
375
377
 
376
- return res.json({ success: true, token: 'JWT ' + returnToken, user: userToReturn });
378
+ if (returnToken.indexOf("JWT")==0) {
379
+ returnToken = "JWT " + returnToken;
380
+ }
381
+
382
+ return res.json({ success: true, token: returnToken, user: userToReturn });
377
383
  });
378
384
  } else {
379
385
  winston.debug('project user already exists ');
@@ -381,7 +387,7 @@ router.post('/signinWithCustomToken', [
381
387
  if (project_user.status==="active") {
382
388
 
383
389
  if (req.user.role && (req.user.role === RoleConstants.OWNER || req.user.role === RoleConstants.ADMIN || req.user.role === RoleConstants.AGENT)) {
384
- let userFromDB = await User.findOne({email: req.user.email , status: 100}).exec();
390
+ let userFromDB = await User.findOne({email: req.user.email.toLowerCase(), status: 100}).exec();
385
391
 
386
392
  var signOptions = {
387
393
  issuer: 'https://tiledesk.com',
@@ -402,7 +408,10 @@ router.post('/signinWithCustomToken', [
402
408
  let returnToken = jwt.sign(userJson, configSecret, signOptions); //priv_jwt pp_jwt
403
409
 
404
410
 
405
- return res.json({ success: true, token: "JWT " + returnToken, user: userFromDB });
411
+ if (returnToken.indexOf("JWT")==0) {
412
+ returnToken = "JWT " + returnToken;
413
+ }
414
+ return res.json({ success: true, token: returnToken, user: userFromDB });
406
415
  // return res.json({ success: true, token: req.headers["authorization"], user: userFromDB });
407
416
 
408
417
 
package/routes/email.js CHANGED
@@ -327,8 +327,10 @@ router.post('/internal/send',
327
327
 
328
328
  winston.info("Sending an email with text : " + text + " to " + to);
329
329
 
330
- //sendEmailDirect(to, text, project, request_id, subject, tokenQueryString, sourcePage, payload)
331
- emailService.sendEmailDirect(newto, text, req.project, request_id, subject, undefined, undefined, undefined, replyto);
330
+ let quoteManager = req.app.get('quote_manager');
331
+
332
+ //sendEmailDirect(to, text, project, request_id, subject, tokenQueryString, sourcePage, payload)
333
+ emailService.sendEmailDirect(newto, text, req.project, request_id, subject, undefined, undefined, undefined, replyto, quoteManager);
332
334
 
333
335
  res.json({"queued": true});
334
336
 
package/routes/faq.js CHANGED
@@ -467,6 +467,7 @@ router.put('/:faqid', function (req, res) {
467
467
  // DELETE REMOTE AND LOCAL FAQ
468
468
  router.delete('/:faqid', function (req, res) {
469
469
 
470
+ console.log("delete called")
470
471
  winston.debug('DELETE FAQ - FAQ ID ', req.params.faqid);
471
472
 
472
473
  let faqid = req.params.faqid;
@@ -0,0 +1,199 @@
1
+ let express = require('express');
2
+ let router = express.Router();
3
+ var winston = require('../config/winston');
4
+ let Integration = require('../models/integrations');
5
+ const cacheEnabler = require('../services/cacheEnabler');
6
+ var cacheUtil = require('../utils/cacheUtil');
7
+ const integrationEvent = require('../event/integrationEvent');
8
+
9
+
10
+ // Get all integration for a project id
11
+ router.get('/', async (req, res) => {
12
+
13
+ let id_project = req.projectid;
14
+ winston.debug("Get all integration for the project " + id_project);
15
+
16
+ let i = Integration.find({ id_project: id_project });
17
+ if (cacheEnabler.integrations) {
18
+ // cacheUtil.longTTL is 1 hour (default), evaluate 1 month (2592000 s)
19
+ i.cache(cacheUtil.longTTL, "project:" + id_project + ":integrations");
20
+ winston.debug('integration cache enabled for get all integrations');
21
+ }
22
+ i.exec((err, integrations) => {
23
+ if (err) {
24
+ winston.error("Error getting integrations: ", err);
25
+ return res.status(500).send({ success: false, message: "Error getting integrations "});
26
+ }
27
+ res.status(200).send(integrations);
28
+ })
29
+ // without cache
30
+ // Integration.find({ id_project: id_project }, (err, integrations) => {
31
+ // if (err) {
32
+ // console.error("Error finding all integrations for the project " + id_project + " - err: " + err);
33
+ // return res.status(404).send({ success: false, err: err })
34
+ // }
35
+ // console.log("Integrations found: ", integrations);
36
+ // res.status(200).send(integrations);
37
+ // })
38
+ })
39
+
40
+ // Get one integration
41
+ router.get('/:integration_id', async (req, res) => {
42
+
43
+ let integration_id = req.params.integration_id;
44
+ winston.debug("Get integration with id " + integration_id);
45
+
46
+ Integration.findById(integration_id, (err, integration) => {
47
+ if (err) {
48
+ winston.error("Error find integration by id: ", err);
49
+ return res.status(404).send({ success: false, err: err });
50
+ }
51
+ res.status(200).send(integration);
52
+ })
53
+
54
+ })
55
+
56
+ router.get('/name/:integration_name', async (req, res) => {
57
+
58
+ let id_project = req.projectid;
59
+ winston.debug("Get all integration for the project " + id_project);
60
+
61
+ let integration_name = req.params.integration_name;
62
+ winston.debug("Get integration with id " + integration_name);
63
+
64
+ Integration.findOne({ id_project: id_project, name: integration_name }, (err, integration) => {
65
+ if (err) {
66
+ winston.error("Error find integration by name: ", err);
67
+ return res.status(404).send({ success: false, err: err });
68
+ }
69
+
70
+ if (!integration) {
71
+ winston.debug("Integration not found");
72
+ return res.status(200).send("Integration not found");
73
+ }
74
+
75
+ res.status(200).send(integration);
76
+ })
77
+ })
78
+
79
+ // Add new integration
80
+ router.post('/', async (req, res) => {
81
+
82
+ let id_project = req.projectid;
83
+ winston.debug("Add new integration ", req.body);
84
+
85
+
86
+ let newIntegration = {
87
+ id_project: id_project,
88
+ name: req.body.name
89
+ }
90
+ if (req.body.value) {
91
+ newIntegration.value = req.body.value;
92
+ }
93
+
94
+ Integration.findOneAndUpdate({ id_project: id_project, name: req.body.name }, newIntegration, { new: true, upsert: true, setDefaultsOnInsert: false}, (err, savedIntegration) => {
95
+ if (err) {
96
+ winston.error("Error creating new integration ", err);
97
+ return res.status(404).send({ success: false, err: err })
98
+ }
99
+
100
+ winston.debug("New integration created: ", savedIntegration);
101
+
102
+ Integration.find({ id_project: id_project }, (err, integrations) => {
103
+ if (err) {
104
+ winston.error("Error getting all integrations");
105
+ } else {
106
+ integrationEvent.emit('integration.update', integrations, id_project);
107
+ }
108
+ })
109
+
110
+ res.status(200).send(savedIntegration);
111
+ })
112
+
113
+ // let newIntegration = new Integration({
114
+ // id_project: id_project,
115
+ // name: req.body.name,
116
+ // value: req.body.value
117
+ // })
118
+
119
+ // newIntegration.save((err, savedIntegration) => {
120
+ // if (err) {
121
+ // console.error("Error creating new integration ", err);
122
+ // return res.status(404).send({ success: false, err: err })
123
+ // }
124
+
125
+ // console.log("New integration created: ", savedIntegration);
126
+
127
+ // Integration.find({ id_project: id_project }, (err, integrations) => {
128
+ // if (err) {
129
+ // console.error("Error getting all integrations");
130
+ // } else {
131
+ // console.log("emit integration.create event")
132
+ // integrationEvent.emit('integration.create', integrations, id_project);
133
+ // }
134
+
135
+ // })
136
+
137
+ // res.status(200).send(savedIntegration);
138
+
139
+ // })
140
+
141
+ })
142
+
143
+ router.put('/:integration_id', async (req, res) => {
144
+
145
+ let id_project = req.projectid;
146
+ let integration_id = req.params.integration_id;
147
+
148
+ let update = {};
149
+ if (req.body.name != undefined) {
150
+ update.name = req.body.name;
151
+ }
152
+ if (req.body.value != undefined) {
153
+ update.value = req.body.value
154
+ }
155
+
156
+ Integration.findByIdAndUpdate(integration_id, update, { new: true, upsert: true }, (err, savedIntegration) => {
157
+ if (err) {
158
+ winston.error("Error find by id and update integration: ", err);
159
+ return res.status({ success: false, error: err })
160
+ }
161
+
162
+ Integration.find({ id_project: id_project }, (err, integrations) => {
163
+ if (err) {
164
+ winston.error("Error getting all integrations");
165
+ } else {
166
+ integrationEvent.emit('integration.update', integrations, id_project);
167
+ }
168
+ })
169
+
170
+ res.status(200).send(savedIntegration);
171
+ })
172
+ })
173
+
174
+ router.delete('/:integration_id', async (req, res) => {
175
+
176
+ let id_project = req.projectid;
177
+ let integration_id = req.params.integration_id;
178
+
179
+ Integration.findByIdAndDelete(integration_id, (err, result) => {
180
+ if (err) {
181
+ winston.error("Error find by id and delete integration: ", err);
182
+ return res.status({ success: false, error: err })
183
+ }
184
+
185
+ Integration.find({ id_project: id_project }, (err, integrations) => {
186
+ if (err) {
187
+ winston.error("Error getting all integrations");
188
+ } else {
189
+ integrationEvent.emit('integration.update', integrations, id_project);
190
+ }
191
+ })
192
+
193
+ res.status(200).send({ success: true, messages: "Integration deleted successfully"});
194
+
195
+ })
196
+ })
197
+
198
+
199
+ module.exports = router;
@@ -1,6 +1,6 @@
1
1
  var express = require('express');
2
2
  var { KBSettings } = require('../models/kb_setting');
3
- var { KB } = require('../models/kb_setting');
3
+ // var { KB } = require('../models/kb_setting');
4
4
  // var KB = require('../models/kb_setting')
5
5
  var router = express.Router();
6
6
  var winston = require('../config/winston');
@@ -99,75 +99,11 @@ router.delete('/:settings_id/:kb_id', async (req, res) => {
99
99
 
100
100
  })
101
101
 
102
- // PROXY PUGLIA AI V2 - START
103
- router.post('/scrape/single', async (req, res) => {
104
-
105
- let data = req.body;
106
- winston.debug("/scrape/single data: ", data);
107
-
108
- let gptkey = process.env.GPTKEY;
109
- if (!gptkey) {
110
- return res.status(403).send({ success: false, error: "GPT apikey undefined"})
111
- }
112
-
113
- data.gptkey = gptkey;
114
-
115
- openaiService.singleScrape(data).then((resp) => {
116
- winston.debug("singleScrape resp: ", resp.data);
117
- return res.status(200).send(resp.data);
118
- }).catch((err) => {
119
- winston.error("singleScrape err: ", err);
120
- let status = err.response.status;
121
- return res.status(status).send({ statusText: err.response.statusText, detail: err.response.data.detail });
122
- })
123
- })
124
-
125
- router.post('/scrape/status', async (req, res) => {
126
-
127
- let data = req.body;
128
- winston.debug("/scrapeStatus req.body: ", req.body);
129
-
130
- openaiService.scrapeStatus(data).then((response) => {
131
-
132
- winston.debug("scrapeStatus response.data: ", response.data);
133
- res.status(200).send(response.data);
134
- }).catch((err) => {
135
- winston.error("scrapeStatus err: ", err);
136
- let status = err.response.status;
137
- res.status(status).send({ statusText: err.response.statusText, detail: err.response.data.detail });
138
- })
139
- })
140
-
141
- router.post('/ask', async (req, res) => {
142
- let data = req.body;
143
- winston.debug("/qa data: ", data);
144
-
145
- if (!data.gptkey) {
146
- let gptkey = process.env.GPTKEY;
147
- if (!gptkey) {
148
- return res.status(403).send({ success: false, error: "GPT apikey undefined"})
149
- }
150
- data.gptkey = gptkey;
151
- }
152
-
153
- openaiService.askNamespace(data).then((resp) => {
154
- winston.debug("qa resp: ", resp.data);
155
- res.status(200).send(resp.data);
156
- }).catch((err) => {
157
- winston.error("qa err: ", err);
158
- let status = err.response.status;
159
- res.status(status).send({ statusText: err.response.statusText, detail: err.response.data.detail });
160
- })
161
- })
162
-
163
- // PROXY PUGLIA AI V2 - END
164
-
165
102
 
166
103
  // PROXY PUGLIA AI - START
167
104
  router.post('/qa', async (req, res) => {
168
105
  let data = req.body;
169
106
  winston.debug("/qa data: ", data);
170
- winston.info("/qa data: ", data);
171
107
 
172
108
  openaiService.ask(data).then((resp) => {
173
109
  winston.debug("qa resp: ", resp.data);
@@ -175,7 +111,6 @@ router.post('/qa', async (req, res) => {
175
111
  }).catch((err) => {
176
112
  winston.error("qa err: ", err);
177
113
  let status = err.response.status;
178
- winston.info("status on error: ", status)
179
114
  res.status(status).send({ statusText: err.response.statusText, detail: err.response.data.detail });
180
115
  })
181
116
  })
@@ -234,9 +169,9 @@ router.post('/checkstatus', async (req, res) => {
234
169
  }
235
170
 
236
171
 
237
- res.status(200).send(resp);
172
+ res.status(200).send(return_data);
238
173
  }).catch((err) => {
239
- winston.error("checkstatus err: ", err);
174
+ //winston.error("checkstatus err: ", err);
240
175
  let status = err.response.status;
241
176
  res.status(status).send({ statusText: err.response.statusText, detail: err.response.data.detail });
242
177
  })
@@ -254,14 +189,10 @@ router.post('/:settings_id', async (req, res) => {
254
189
  return res.status(500).send({ success: false, error: err});
255
190
  } else {
256
191
 
257
- let new_kb = new KB({
192
+ let new_kb = {
258
193
  name: body.name,
259
- url: body.url,
260
- source: body.source,
261
- type: body.type,
262
- content: body.content,
263
- namespace: body.namespace
264
- })
194
+ url: body.url
195
+ }
265
196
  settings.kbs.push(new_kb);
266
197
 
267
198
  KBSettings.findByIdAndUpdate( settings_id, settings, { new: true }, (err, savedSettings) => {
@@ -269,11 +200,12 @@ router.post('/:settings_id', async (req, res) => {
269
200
  winston.err("findByIdAndUpdate error: ", err);
270
201
  res.status(500).send({ success: false, error: err });
271
202
  } else {
272
- res.status(200).send(new_kb);
203
+ res.status(200).send(savedSettings);
273
204
  }
274
205
  })
275
206
  }
276
207
  })
277
208
  })
278
209
 
210
+
279
211
  module.exports = router;