@tiledesk/tiledesk-server 2.4.52 → 2.4.54

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,134 @@
1
+ //During the test the env variable is set to test
2
+ process.env.NODE_ENV = 'test';
3
+
4
+ let log = false;
5
+ var projectService = require('../services/projectService');
6
+ var userService = require('../services/userService');
7
+
8
+ //Require the dev-dependencies
9
+ let chai = require('chai');
10
+ let chaiHttp = require('chai-http');
11
+ let server = require('../app');
12
+ let should = chai.should();
13
+ var fs = require('fs');
14
+ const path = require('path');
15
+
16
+ // chai.config.includeStack = true;
17
+
18
+ var expect = chai.expect;
19
+ var assert = chai.assert;
20
+
21
+ chai.use(chaiHttp);
22
+
23
+ describe('FaqKBRoute', () => {
24
+
25
+ describe('/create', () => {
26
+
27
+ // it('completions', (done) => {
28
+
29
+ // var email = "test-signup-" + Date.now() + "@email.com";
30
+ // var pwd = "pwd";
31
+
32
+ // userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
33
+ // projectService.create("test-openai-create", savedUser._id).then((savedProject) => {
34
+
35
+ // chai.request(server)
36
+ // .post('/' + savedProject._id + '/kbsettings')
37
+ // .auth(email, pwd)
38
+ // .send({}) // can be empty
39
+ // .end((err, res) => {
40
+ // if (log) { console.log("create kbsettings res.body: ", res.body); }
41
+ // res.should.have.status(200);
42
+ // res.body.should.be.a('object');
43
+
44
+ // chai.request(server)
45
+ // .put('/' + savedProject._id + "/kbsettings/" + res.body._id)
46
+ // .auth(email, pwd)
47
+ // .send({ gptkey: "sk-12345678" })
48
+ // .end((err, res) => {
49
+ // if (log) { console.log("add kb to kb settings res.body: ", res.body); }
50
+ // res.should.have.status(200);
51
+ // res.body.should.be.a('object');
52
+
53
+ // chai.request(server)
54
+ // .post('/' + savedProject._id + '/openai')
55
+ // .auth(email, pwd)
56
+ // .send({ question: "Provide 3 names for a dog", context: "you are an awesome assistant", max_tokens: 100, temperature: 0, model: "gpt-3.5-turbo" })
57
+ // .end((err, res) => {
58
+ // console.log("res.body (1): ", res.body);
59
+ // console.log("res.status: ", res.status);
60
+
61
+ // done();
62
+ // })
63
+
64
+ // })
65
+ // })
66
+ // })
67
+ // })
68
+ // }).timeout(20000)
69
+
70
+ it('completions missing gptkey', (done) => {
71
+
72
+ var email = "test-signup-" + Date.now() + "@email.com";
73
+ var pwd = "pwd";
74
+
75
+ userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
76
+ projectService.create("test-openai-create", savedUser._id).then((savedProject) => {
77
+
78
+ chai.request(server)
79
+ .post('/' + savedProject._id + '/kbsettings')
80
+ .auth(email, pwd)
81
+ .send({}) // can be empty
82
+ .end((err, res) => {
83
+ if (log) { console.log("create kbsettings res.body: ", res.body); }
84
+ res.should.have.status(200);
85
+ res.body.should.be.a('object');
86
+
87
+ chai.request(server)
88
+ .post('/' + savedProject._id + '/openai')
89
+ .auth(email, pwd)
90
+ .send({ question: "Provide 3 names for a dog", context: "you are an awesome assistant", max_tokens: 100, temperature: 0, model: "gpt-3.5-turbo" })
91
+ .end((err, res) => {
92
+ if (log) {console.log("res.body: ", res.body);}
93
+ res.should.have.status(400);
94
+ res.body.should.be.a('object');
95
+ expect(res.body.success).to.equal(false);
96
+ expect(res.body.message).to.equal("Missing gptkey parameter");
97
+
98
+ done();
99
+ })
100
+ })
101
+ })
102
+ })
103
+ }).timeout(20000)
104
+
105
+ it('completions missing settings', (done) => {
106
+
107
+ var email = "test-signup-" + Date.now() + "@email.com";
108
+ var pwd = "pwd";
109
+
110
+ userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
111
+ projectService.create("test-openai-create", savedUser._id).then((savedProject) => {
112
+
113
+ chai.request(server)
114
+ .post('/' + savedProject._id + '/openai')
115
+ .auth(email, pwd)
116
+ .send({ question: "Provide 3 names for a dog", context: "you are an awesome assistant", max_tokens: 100, temperature: 0, model: "gpt-3.5-turbo" })
117
+ .end((err, res) => {
118
+ if (log) {console.log("res.body: ", res.body);}
119
+ res.should.have.status(400);
120
+ res.body.should.be.a('object');
121
+ expect(res.body.success).to.equal(false);
122
+ expect(res.body.message).to.equal("Missing gptkey parameter (settings not exist)");
123
+
124
+ done();
125
+ })
126
+ })
127
+ })
128
+ }).timeout(20000)
129
+
130
+ });
131
+
132
+ });
133
+
134
+
@@ -0,0 +1,63 @@
1
+ //During the test the env variable is set to test
2
+ process.env.NODE_ENV = 'test';
3
+
4
+ let chai = require('chai');
5
+ let chaiHttp = require('chai-http');
6
+ let server = require('../app');
7
+
8
+ chai.use(chaiHttp);
9
+
10
+ var expect = require('chai').expect;
11
+ var assert = require('chai').assert;
12
+ var config = require('../config/database');
13
+
14
+ var mongoose = require('mongoose');
15
+ var winston = require('../config/winston');
16
+
17
+ // var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI;
18
+ // if (!databaseUri) {
19
+ // console.log('DATABASE_URI not specified, falling back to localhost.');
20
+ // }
21
+
22
+ // mongoose.connect(databaseUri || config.database);
23
+ mongoose.connect(config.databasetest);
24
+
25
+ var userService = require('../services/userService');
26
+
27
+
28
+ describe('UserService()', function () {
29
+
30
+ it('loginemail', (done) => {
31
+ var now = Date.now();
32
+ var email = "test-UserService-signup-" + now + "@email.com";
33
+ var pwd = "pwd";
34
+
35
+ userService.signup(email , pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
36
+ expect(savedUser.email).to.equal("test-userservice-signup-" + now + "@email.com");
37
+ expect(savedUser.firstname).to.equal( "Test Firstname");
38
+ expect(savedUser.lastname).to.equal("Test lastname");
39
+
40
+ chai.request(server)
41
+ .post('/users/loginemail')
42
+ .auth(email, pwd)
43
+ .send({ "id_project": "123456789" })
44
+ .end((err, res) => {
45
+ console.log("res.body: ", res.body);
46
+ console.log("res.status: ", res.status);
47
+
48
+ done();
49
+ })
50
+
51
+
52
+ }).catch(function(err) {
53
+ winston.error("test reject", err);
54
+ assert.isNotOk(err,'Promise error');
55
+ done();
56
+ });
57
+
58
+ })
59
+
60
+
61
+ });
62
+
63
+
@@ -0,0 +1,98 @@
1
+
2
+ class Segment2MongoConverter {
3
+
4
+ convert(query, segment) {
5
+ //console.log("qui", query);
6
+
7
+ let condition = query;
8
+ //let condition = {};
9
+
10
+ // if (segment.match == "any") {
11
+ // // db.inventory.find( { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] } )
12
+ // condition["$or"] = [];
13
+ // }
14
+
15
+ if (segment.filters && segment.filters.length > 0) {
16
+ for(var i = 0; i < segment.filters.length; i++) {
17
+ let filter = segment.filters[i];
18
+ switch (filter.operator) {
19
+ case '=':
20
+ //console.log('Operator =');
21
+ this.convertEqualsOperatorFilter(condition, filter);
22
+ break;
23
+ case '!=':
24
+ //console.log('Operator !=');
25
+ this.convertNotEqualsOperatorFilter(condition, filter);
26
+ break;
27
+ case '>':
28
+ //console.log('Operator !=');
29
+ this.convertGreaterThanOperatorFilter(condition, filter);
30
+ break;
31
+ case '>=':
32
+ //console.log('Operator >=');
33
+ this.convertGreaterThanOrEqualOperatorFilter(condition, filter);
34
+ break;
35
+ case 'stars with':
36
+ //console.log('Operator >=');
37
+ this.convertStarsWithOperatorFilter(condition, filter);
38
+ break;
39
+ case 'contains':
40
+ //console.log('Operator >=');
41
+ this.convertContainsOperatorFilter(condition, filter);
42
+ break;
43
+ case 'is null':
44
+ //console.log('Operator >=');
45
+ this.convertIsUndefinedOperatorFilter(condition, filter);
46
+ break;
47
+ case 'is not null':
48
+ //console.log('Operator >=');
49
+ this.convertExistsOperatorFilter(condition, filter);
50
+ break;
51
+
52
+ default:
53
+ console.log('Operator default');
54
+ }
55
+
56
+ }
57
+ }
58
+
59
+ //console.log("qui2", query);
60
+
61
+ }
62
+
63
+ convertEqualsOperatorFilter(query, filter) {
64
+ query[filter.field] = filter.value;
65
+ }
66
+
67
+ convertNotEqualsOperatorFilter(query, filter) {
68
+ query[filter.field] = {"$ne": filter.value};
69
+ }
70
+
71
+ convertGreaterThanOperatorFilter(query, filter) {
72
+ query[filter.field] = {"$gt": filter.value};
73
+ }
74
+ convertGreaterThanOrEqualOperatorFilter(query, filter) {
75
+ query[filter.field] = {"$gte": filter.value};
76
+ }
77
+
78
+ convertStartWithOperatorFilter(query, filter) {
79
+ query[filter.field] = {"$regex": "/^"+filter.value+"/i"};
80
+ }
81
+ convertStartWithOperatorFilter(query, filter) {
82
+ query[filter.field] = {"$regex": "/^"+filter.value+"/i"};
83
+ }
84
+ convertContainsOperatorFilter(query, filter) {
85
+ query[filter.field] = {"$regex": filter.value};
86
+ }
87
+ convertIsUndefinedOperatorFilter(query, filter) {
88
+ query[filter.field] = {"$exists": false};
89
+ }
90
+ convertExistsOperatorFilter(query, filter) {
91
+ query[filter.field] = {"$exists": true};
92
+ }
93
+ }
94
+
95
+ var segment2MongoConverter = new Segment2MongoConverter();
96
+
97
+ module.exports = segment2MongoConverter;
98
+
@@ -1,58 +0,0 @@
1
- var express = require('express');
2
- var OpenaiKbs = require('../models/openai_kbs');
3
- var router = express.Router();
4
-
5
-
6
- router.get('/', async (req, res) => {
7
-
8
- let project_id = req.projectid;
9
-
10
- OpenaiKbs.find({ id_project: project_id }, (err, kbs) => {
11
- if (err) {
12
- console.error("find all kbs error: ", err);
13
- return res.status(500).send({ success: false, error: err });
14
- } else {
15
- return res.status(200).send(kbs);
16
- }
17
- })
18
- })
19
-
20
- router.post('/', async (req, res) => {
21
-
22
- let body = req.body;
23
-
24
- let new_kbs = new OpenaiKbs({
25
- name: body.name,
26
- url: body.url,
27
- id_project: req.projectid,
28
- gptkey: req.body.gptkey
29
- })
30
-
31
- new_kbs.save(function (err, savedKbs) {
32
- if (err) {
33
- console.error("save new kbs error: ", err);
34
- return res.status(500).send({ success: false, error: err});
35
- } else {
36
- return res.status(200).send(savedKbs);
37
- }
38
- })
39
- })
40
-
41
- router.put('/', async (req, res) => {
42
- // to be implemented
43
- })
44
-
45
- router.delete('/:kbs_id', async (req, res) => {
46
- let kbs_id = req.params.kbs_id;
47
-
48
- OpenaiKbs.findOneAndDelete( { _id: kbs_id }, (err, kbDeleted) => {
49
- if (err) {
50
- console.error("find one and delete kbs error: ", err);
51
- return res.status(500).send({ success: false, error: err});
52
- } else {
53
- return res.status(200).send({ success: true, message: 'Knowledge Base deleted successfully', openai_kb: kbDeleted });
54
- }
55
- })
56
- })
57
-
58
- module.exports = router;
@@ -1,75 +0,0 @@
1
- //During the test the env variable is set to test
2
- process.env.NODE_ENV = 'test';
3
-
4
- let log = false;
5
-
6
- //Require the dev-dependencies
7
- let chai = require('chai');
8
- let chaiHttp = require('chai-http');
9
- let server = require('../app');
10
- let should = chai.should();
11
- var fs = require('fs');
12
- const path = require('path');
13
-
14
- // chai.config.includeStack = true;
15
-
16
- var expect = chai.expect;
17
- var assert = chai.assert;
18
-
19
- chai.use(chaiHttp);
20
-
21
- describe('FaqKBRoute', () => {
22
-
23
- describe('/create', () => {
24
-
25
- it('home', (done) => {
26
-
27
- })
28
-
29
- it('create', (done) => {
30
-
31
- var email = "test-signup-" + Date.now() + "@email.com";
32
- var pwd = "pwd";
33
-
34
- userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
35
- projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
36
- chai.request(server)
37
- .post('/' + savedProject._id + '/faq_kb')
38
- .auth(email, pwd)
39
- .send({ "name": "testbot", type: "external", language: 'fr' })
40
- .end((err, res) => {
41
- if (log) {
42
- console.log("res.body", res.body);
43
- }
44
- res.should.have.status(200);
45
- res.body.should.be.a('object');
46
- expect(res.body.name).to.equal("testbot");
47
- expect(res.body.language).to.equal("fr");
48
-
49
- chai.request(server)
50
- .get('/' + savedProject._id + '/faq_kb/' + res.body._id)
51
- .auth(email, pwd)
52
- .end((err, res) => {
53
- if (log) {
54
- console.log("res.body", res.body);
55
- }
56
- res.should.have.status(200);
57
-
58
- done();
59
- });
60
- });
61
-
62
-
63
- });
64
- });
65
-
66
- }).timeout(20000);
67
-
68
-
69
-
70
-
71
- });
72
-
73
- });
74
-
75
-