@itleanchatbot/shared-models-js-postgres 1.1.52 → 1.1.54

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/index.js CHANGED
@@ -45,6 +45,7 @@ const responses = require('./src/responses')
45
45
  const responsesBoxes = require('./src/responsesBoxes')
46
46
  const client = require('./src/client')
47
47
  const transhipTriggers = require('./src/transhipTriggers')
48
+ const faqTriggers = require('./src/faqTriggers')
48
49
 
49
50
  module.exports = {
50
51
  attendances,
@@ -93,5 +94,6 @@ module.exports = {
93
94
  responses,
94
95
  responsesBoxes,
95
96
  client,
96
- transhipTriggers
97
+ transhipTriggers,
98
+ faqTriggers
97
99
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itleanchatbot/shared-models-js-postgres",
3
- "version": "1.1.52",
3
+ "version": "1.1.54",
4
4
  "description": "Shared Models JS Postgres",
5
5
  "main": "index.js",
6
6
  "license": "ISC",
@@ -1,152 +1,153 @@
1
1
  const DIALOG_NODE_TYPES = {
2
- NODE: 'node',
3
- FOLDER: 'folder',
4
- }
2
+ NODE: 'node',
3
+ FOLDER: 'folder',
4
+ }
5
5
  const DIALOG_NODE_TYPE = [DIALOG_NODE_TYPES.NODE, DIALOG_NODE_TYPES.FOLDER]
6
6
  const DialogNodesModel = (sequelize, Sequelize) => {
7
- const DialogNodes = sequelize.define('DialogNodes', {
8
- name: {
9
- type: Sequelize.STRING,
10
- allowNull: true,
11
- },
12
- condition: {
13
- type: Sequelize.TEXT,
14
- allowNull: true,
15
- },
16
- step: {
17
- type: Sequelize.INTEGER,
18
- allowNull: false,
19
- },
20
- replayWait: {
21
- type: Sequelize.BOOLEAN,
22
- allowNull: false,
23
- defaultValue: true,
24
- },
25
- JumpToDialogNodeId: {
26
- type: Sequelize.UUID,
27
- allowNull: true,
28
- references: {
29
- model: 'DialogNodes',
30
- key: 'id',
31
- },
32
- onDelete: 'RESTRICT',
33
- onUpdate: 'CASCADE',
34
- },
35
- JumpToSkillId: {
36
- type: Sequelize.UUID,
37
- allowNull: true,
38
- references: {
39
- model: 'Skills',
40
- key: 'id',
41
- },
42
- onDelete: 'RESTRICT',
43
- onUpdate: 'CASCADE',
7
+ const DialogNodes = sequelize.define('DialogNodes', {
8
+ name: {
9
+ type: Sequelize.STRING,
10
+ allowNull: true,
11
+ },
12
+ condition: {
13
+ type: Sequelize.TEXT,
14
+ allowNull: true,
15
+ },
16
+ step: {
17
+ type: Sequelize.INTEGER,
18
+ allowNull: false,
19
+ },
20
+ replayWait: {
21
+ type: Sequelize.BOOLEAN,
22
+ allowNull: false,
23
+ defaultValue: true,
24
+ },
25
+ JumpToDialogNodeId: {
26
+ type: Sequelize.UUID,
27
+ allowNull: true,
28
+ references: {
29
+ model: 'DialogNodes',
30
+ key: 'id',
44
31
  },
45
- SkillId: {
46
- type: Sequelize.UUID,
47
- allowNull: true,
48
- references: {
49
- model: 'Skills',
50
- key: 'id',
51
- },
52
- onDelete: 'RESTRICT',
53
- onUpdate: 'CASCADE',
32
+ onDelete: 'RESTRICT',
33
+ onUpdate: 'CASCADE',
34
+ },
35
+ JumpToSkillId: {
36
+ type: Sequelize.UUID,
37
+ allowNull: true,
38
+ references: {
39
+ model: 'Skills',
40
+ key: 'id',
54
41
  },
55
- DialogNodeFolderId: {
56
- type: Sequelize.UUID,
57
- allowNull: true,
58
- references: {
59
- model: 'DialogNodes',
60
- key: 'id',
61
- },
62
- onDelete: 'RESTRICT',
63
- onUpdate: 'CASCADE',
42
+ onDelete: 'RESTRICT',
43
+ onUpdate: 'CASCADE',
44
+ },
45
+ SkillId: {
46
+ type: Sequelize.UUID,
47
+ allowNull: true,
48
+ references: {
49
+ model: 'Skills',
50
+ key: 'id',
64
51
  },
65
- type: {
66
- type: Sequelize.ENUM({
67
- values: DIALOG_NODE_TYPE,
68
- }),
69
- defaultValue: DIALOG_NODE_TYPES.NODE,
70
- allowNull: false,
52
+ onDelete: 'RESTRICT',
53
+ onUpdate: 'CASCADE',
54
+ },
55
+ DialogNodeFolderId: {
56
+ type: Sequelize.UUID,
57
+ allowNull: true,
58
+ references: {
59
+ model: 'DialogNodes',
60
+ key: 'id',
71
61
  },
72
- isMultipleResponse: {
73
- type: Sequelize.BOOLEAN,
74
- allowNull: false,
75
- defaultValue: true,
76
- },
77
- hasMultipleResponse: {
78
- type: Sequelize.BOOLEAN,
79
- allowNull: false,
80
- defaultValue: false
81
- },
82
- contexts: {
83
- type: Sequelize.TEXT,
84
- allowNull: false,
85
- defaultValue: '',
86
- get(field) {
87
- try {
88
- let value = this.getDataValue(field)
89
- value = JSON.parse(value)
90
- if (value.length) {
91
- return value.map(item => {
92
- try {
93
- if(typeof item === 'string') {
94
- return JSON.parse(item)
95
- } else {
96
- return item
97
- }
98
- } catch (error) {
99
- console.error(error)
62
+ onDelete: 'RESTRICT',
63
+ onUpdate: 'CASCADE',
64
+ },
65
+ type: {
66
+ type: Sequelize.ENUM({
67
+ values: DIALOG_NODE_TYPE,
68
+ }),
69
+ defaultValue: DIALOG_NODE_TYPES.NODE,
70
+ allowNull: false,
71
+ },
72
+ isMultipleResponse: {
73
+ type: Sequelize.BOOLEAN,
74
+ allowNull: false,
75
+ defaultValue: true,
76
+ },
77
+ hasMultipleResponse: {
78
+ type: Sequelize.BOOLEAN,
79
+ allowNull: false,
80
+ defaultValue: false
81
+ },
82
+ contexts: {
83
+ type: Sequelize.TEXT,
84
+ allowNull: false,
85
+ defaultValue: '',
86
+ get(field) {
87
+ try {
88
+ let value = this.getDataValue(field)
89
+ value = JSON.parse(value)
90
+ if (value.length) {
91
+ return value.map(item => {
92
+ try {
93
+ if(typeof item === 'string') {
94
+ return JSON.parse(item)
95
+ } else {
100
96
  return item
101
97
  }
102
- })
103
- }
104
- return value
105
- } catch (error) {
106
- let value = this.getDataValue(field)
98
+ } catch (error) {
99
+ console.error(error)
100
+ return item
101
+ }
102
+ })
103
+ }
104
+ return value
105
+ } catch (error) {
106
+ let value = this.getDataValue(field)
107
107
 
108
- if(typeof value === 'string') {
109
- value = []
110
- }
111
- return value
108
+ if(typeof value === 'string') {
109
+ value = []
112
110
  }
113
- },
111
+ return value
112
+ }
114
113
  },
114
+ },
115
+ })
116
+
117
+ DialogNodes.associate = (models) => {
118
+ DialogNodes.hasMany(models.Response_DialogNodes, { onDelete: 'CASCADE', })
119
+ DialogNodes.belongsTo(models.Skill, { foreignKey: 'SkillId' })
120
+ DialogNodes.belongsTo(models.Skill, {
121
+ as: 'JumpToSkill',
122
+ foreignKey: 'JumpToSkillId',
115
123
  })
116
-
117
- DialogNodes.associate = (models) => {
118
- DialogNodes.hasMany(models.Response_DialogNodes, { onDelete: 'CASCADE', })
119
- DialogNodes.belongsTo(models.Skill, { foreignKey: 'SkillId' })
120
- DialogNodes.belongsTo(models.Skill, {
121
- as: 'JumpToSkill',
122
- foreignKey: 'JumpToSkillId',
123
- })
124
- DialogNodes.belongsTo(models.DialogNodes, {
125
- as: 'DialogNodeFolder',
126
- foreignKey: 'DialogNodeFolderId',
127
- })
128
- DialogNodes.belongsTo(models.DialogNodes, {
129
- as: 'JumpToDialogNode',
130
- foreignKey: 'JumpToDialogNodeId',
131
- onDelete: 'CASCADE'
132
- })
133
- DialogNodes.hasMany(models.DialogNodes_MultipleResponses, { onDelete: 'CASCADE' })
134
- DialogNodes.hasMany(models.DialogNodes_ApiResources, { onDelete: 'CASCADE' })
135
- DialogNodes.hasOne(models.TranshipTriggers)
136
- DialogNodes.hasMany(models.TranshipTriggers, { as: 'SuccessDialogNode', foreignKey: 'successDialogNodeId' })
137
- DialogNodes.hasMany(models.TranshipTriggers, { as: 'ErrorDialogNode', foreignKey: 'errorDialogNodeId' })
138
- DialogNodes.hasMany(models.TranshipTriggers, { as: 'OnCloseDialogNode', foreignKey: 'onCloseDialogNodeId' })
139
- DialogNodes.hasMany(models.TranshipTriggers, { as: 'NonOperatingDialogNode', foreignKey: 'nonOperatingDialogNodeId' })
140
- DialogNodes.hasMany(models.TranshipTriggers, { as: 'AbandonmentDialogNode', foreignKey: 'abandonmentDialogNodeId' })
141
- }
142
-
143
-
144
- return DialogNodes
124
+ DialogNodes.belongsTo(models.DialogNodes, {
125
+ as: 'DialogNodeFolder',
126
+ foreignKey: 'DialogNodeFolderId',
127
+ })
128
+ DialogNodes.belongsTo(models.DialogNodes, {
129
+ as: 'JumpToDialogNode',
130
+ foreignKey: 'JumpToDialogNodeId',
131
+ onDelete: 'CASCADE'
132
+ })
133
+ DialogNodes.hasMany(models.DialogNodes_MultipleResponses, { onDelete: 'CASCADE' })
134
+ DialogNodes.hasMany(models.DialogNodes_ApiResources, { onDelete: 'CASCADE' })
135
+ DialogNodes.hasOne(models.TranshipTriggers)
136
+ DialogNodes.hasMany(models.TranshipTriggers, { as: 'SuccessDialogNode', foreignKey: 'successDialogNodeId' })
137
+ DialogNodes.hasMany(models.TranshipTriggers, { as: 'ErrorDialogNode', foreignKey: 'errorDialogNodeId' })
138
+ DialogNodes.hasMany(models.TranshipTriggers, { as: 'OnCloseDialogNode', foreignKey: 'onCloseDialogNodeId' })
139
+ DialogNodes.hasMany(models.TranshipTriggers, { as: 'NonOperatingDialogNode', foreignKey: 'nonOperatingDialogNodeId' })
140
+ DialogNodes.hasMany(models.TranshipTriggers, { as: 'AbandonmentDialogNode', foreignKey: 'abandonmentDialogNodeId' })
141
+ DialogNodes.hasOne(models.FaqTriggers)
142
+ DialogNodes.hasMany(models.FaqTriggers, { as: 'FaqSuccessDialogNode', foreignKey: 'successDialogNodeId' })
143
+ DialogNodes.hasMany(models.FaqTriggers, { as: 'FaqErrorDialogNode', foreignKey: 'errorDialogNodeId' })
144
+ DialogNodes.hasMany(models.FaqTriggers, { as: 'FaqNotFoundDialogNode', foreignKey: 'notFoundDialogNodeId' })
145
145
  }
146
+ return DialogNodes
147
+ }
146
148
 
147
149
  module.exports = {
148
- DIALOG_NODE_TYPE,
149
- DIALOG_NODE_TYPES,
150
- DialogNodesModel
150
+ DIALOG_NODE_TYPE,
151
+ DIALOG_NODE_TYPES,
152
+ DialogNodesModel
151
153
  }
152
-
@@ -0,0 +1,51 @@
1
+ exports.FaqTriggersModel = (sequelize, DataTypes) => {
2
+ const FaqTriggers = sequelize.define('FaqTriggers', {
3
+ DialogNodeId: {
4
+ type: DataTypes.UUID,
5
+ allowNull: false,
6
+ references: {
7
+ model: 'DialogNodes',
8
+ key: 'id'
9
+ },
10
+ onDelete: 'RESTRICT',
11
+ onUpdate: 'CASCADE'
12
+ },
13
+ successDialogNodeId: {
14
+ allowNull: true,
15
+ type: DataTypes.UUID,
16
+ references: {
17
+ model: 'DialogNodes',
18
+ key: 'id'
19
+ },
20
+ onDelete: 'SET NULL',
21
+ onUpdate: 'CASCADE'
22
+ },
23
+ errorDialogNodeId: {
24
+ allowNull: true,
25
+ type: DataTypes.UUID,
26
+ references: {
27
+ model: 'DialogNodes',
28
+ key: 'id'
29
+ },
30
+ onDelete: 'SET NULL',
31
+ onUpdate: 'CASCADE'
32
+ },
33
+ notFoundDialogNodeId: {
34
+ allowNull: true,
35
+ type: DataTypes.UUID,
36
+ references: {
37
+ model: 'DialogNodes',
38
+ key: 'id',
39
+ },
40
+ onDelete: 'SET NULL',
41
+ onUpdate: 'CASCADE',
42
+ },
43
+ })
44
+ FaqTriggers.associate = (models) => {
45
+ FaqTriggers.belongsTo(models.DialogNodes)
46
+ FaqTriggers.belongsTo(models.DialogNodes, { as: 'FaqSuccessDialogNode', foreignKey: 'successDialogNodeId' })
47
+ FaqTriggers.belongsTo(models.DialogNodes, { as: 'FaqErrorDialogNode', foreignKey: 'errorDialogNodeId' })
48
+ FaqTriggers.belongsTo(models.DialogNodes, { as: 'FaqNotFoundDialogNode', foreignKey: 'notFoundDialogNodeId' })
49
+ }
50
+ return FaqTriggers
51
+ }