masterrecord 0.0.23 → 0.0.24

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.
@@ -1,184 +1,184 @@
1
- // ALL THIS SHOULD DO IS BUILD A SQL QUERY
2
- var EntityTrackerModel = require('masterrecord/Entity/EntityTrackerModel');
3
- var Tokenize = require('masterrecord/QueryLanguage/_Tokenization');
4
- var QueryModel = require('masterrecord/QueryLanguage/_QueryModel');
5
-
6
-
7
- class simpleQuery{
8
- constructor(model, context) {
9
- this.__model = model;
10
- this.__context = context;
11
- this.__contextList = context.__allContexts;
12
- this.__queryModel = new QueryModel(model, context);
13
- }
14
-
15
- raw(query){
16
-
17
- }
18
-
19
- add(entityValue){
20
- // This will call context API to REMOVE entity to update list
21
- var ent = EntityTrackerModel.build(entityValue, this.__model);
22
- ent.__state = "insert";
23
- this.__context.__Track(ent);
24
- }
25
-
26
- remove(entityValue){
27
- // This will call context API to REMOVE entity to Delete list
28
- var ent = EntityTrackerModel.build(entityValue, this.__model);
29
- ent.__state = "delete";
30
- this.__context.__Track(ent);
31
- }
32
-
33
- track(entityValue){
34
- var ent = EntityTrackerModel.build(entityValue, this.__model);
35
- ent.__state = "track";
36
- return this.__context.__Track(ent);
37
- }
38
-
39
-
40
- toList(){
41
- // Rule you cannot do fucntions on queryNames s.count() will through error
42
- /// select delimiter
43
- // select [ID] AS [ID],
44
- // CASE WHEN ([Extent1].[Name] LIKE N'%jist%') THEN cast(1 as bit) WHEN ( NOT ([Extent1].[Name] LIKE N'%Jist%')) THEN cast(0 as bit) END AS [C1],
45
- // cannot do where on fields that dont have relationships;;
46
- var qq = `s => ({
47
- id: s.Id,
48
- jj: s.Name != "richy" && s.james === "josj",
49
- name: !s.Name.contains("jist"),
50
- NumberOfFruits : s.Fruits.where(r => r.name == "richard").single().Courses.distinct()
51
- }`;
52
-
53
- var were = `s => s.Fruits.where(r => r.name == "richard").single().flys.distinct().toList()`;
54
-
55
- var QueryModelTest = {
56
- name : "posts",
57
- limit:{},
58
- dateRange: "",
59
- conditions:[],
60
- selects: [{
61
- returnName : "id",
62
- field : {
63
- property: "s",
64
- name : "id"
65
- },
66
- property : "s",
67
- },{
68
- returnName : "jj",
69
- field : {
70
- property : "s",
71
- name : "Name"
72
- },
73
- property : "s",
74
- operators : [{
75
- property : "s",
76
- field: "Name",
77
- operator: "notEqual",
78
- value : "richy",
79
- logicalOperator : "and"
80
- },{
81
- property : "s",
82
- field: "james",
83
- operator: "equal",
84
- value : "josj",
85
- logicalOperator : ""
86
- }]
87
- },{
88
- returnName : "name",
89
- field : {
90
- property : "s",
91
- name : "name"
92
- },
93
- property : "s",
94
- operator: [{
95
- property : "s",
96
- field: "name",
97
- operator: "not",
98
- value : "",
99
- logicalOperator : "",
100
- },
101
- {
102
- property : "s",
103
- field: "Name",
104
- operator: "in",
105
- value : "jist",
106
- logicalOperator : "",
107
- }]
108
- },
109
- {
110
- returnName : "NumberOfFruits",
111
- fields : {},
112
- property : "s",
113
- operator: [],
114
- }
115
- ],
116
- relationships : [{ // union all relationships together
117
- name: "Fruits", // could be changed nested type
118
- dateRange: "",
119
- limits: {
120
- amount :1,
121
- object : "single" // nested limit will produce inner select top
122
- },
123
- selects:[],
124
- relationships: [{
125
- name: "flys", // could be changed nested type
126
- dateRange: "",
127
- limits: {},
128
- selects:[],
129
- relationships: [],
130
- conditions: []
131
- }],
132
- conditions: [{
133
- type: "where",
134
- context: "r",
135
- field : {
136
- property : "r",
137
- name : "id"
138
- },
139
- operators: [{
140
- property : "r",
141
- field: "name",
142
- operator: "equal",
143
- value : "richard",
144
- logicalOperator : ""
145
- }],
146
- }]
147
- }]
148
-
149
- };
150
-
151
-
152
- var tt = new Tokenize();
153
- var tokenList = tt.Tokenize(qq);
154
- var james = this.__queryModel.select(tokenList);
155
- var jj = "";
156
- }
157
-
158
- where(query){
159
- if(query !== undefined || query !== null){
160
- var tt = new Tokenize();
161
- var tokenList = tt.Tokenize(query);
162
- this.__queryModel.condition(tokenList, "where");
163
- }
164
- return this;
165
- }
166
-
167
- select(query){
168
- var tt = new Tokenize();
169
- var tokenList = tt.Tokenize(query);
170
- this.__queryModel.select(tokenList);
171
- return this;
172
- }
173
-
174
- // can only be used at the end of a query not an inner query
175
- single(){
176
- return this;
177
- }
178
-
179
- distinct(){
180
- return this;
181
- }
182
- }
183
-
1
+ // ALL THIS SHOULD DO IS BUILD A SQL QUERY
2
+ var EntityTrackerModel = require('masterrecord/Entity/EntityTrackerModel');
3
+ var Tokenize = require('masterrecord/QueryLanguage/_Tokenization');
4
+ var QueryModel = require('masterrecord/QueryLanguage/_QueryModel');
5
+
6
+
7
+ class simpleQuery{
8
+ constructor(model, context) {
9
+ this.__model = model;
10
+ this.__context = context;
11
+ this.__contextList = context.__allContexts;
12
+ this.__queryModel = new QueryModel(model, context);
13
+ }
14
+
15
+ raw(query){
16
+
17
+ }
18
+
19
+ add(entityValue){
20
+ // This will call context API to REMOVE entity to update list
21
+ var ent = EntityTrackerModel.build(entityValue, this.__model);
22
+ ent.__state = "insert";
23
+ this.__context.__Track(ent);
24
+ }
25
+
26
+ remove(entityValue){
27
+ // This will call context API to REMOVE entity to Delete list
28
+ var ent = EntityTrackerModel.build(entityValue, this.__model);
29
+ ent.__state = "delete";
30
+ this.__context.__Track(ent);
31
+ }
32
+
33
+ track(entityValue){
34
+ var ent = EntityTrackerModel.build(entityValue, this.__model);
35
+ ent.__state = "track";
36
+ return this.__context.__Track(ent);
37
+ }
38
+
39
+
40
+ toList(){
41
+ // Rule you cannot do fucntions on queryNames s.count() will through error
42
+ /// select delimiter
43
+ // select [ID] AS [ID],
44
+ // CASE WHEN ([Extent1].[Name] LIKE N'%jist%') THEN cast(1 as bit) WHEN ( NOT ([Extent1].[Name] LIKE N'%Jist%')) THEN cast(0 as bit) END AS [C1],
45
+ // cannot do where on fields that dont have relationships;;
46
+ var qq = `s => ({
47
+ id: s.Id,
48
+ jj: s.Name != "richy" && s.james === "josj",
49
+ name: !s.Name.contains("jist"),
50
+ NumberOfFruits : s.Fruits.where(r => r.name == "richard").single().Courses.distinct()
51
+ }`;
52
+
53
+ var were = `s => s.Fruits.where(r => r.name == "richard").single().flys.distinct().toList()`;
54
+
55
+ var QueryModelTest = {
56
+ name : "posts",
57
+ limit:{},
58
+ dateRange: "",
59
+ conditions:[],
60
+ selects: [{
61
+ returnName : "id",
62
+ field : {
63
+ property: "s",
64
+ name : "id"
65
+ },
66
+ property : "s",
67
+ },{
68
+ returnName : "jj",
69
+ field : {
70
+ property : "s",
71
+ name : "Name"
72
+ },
73
+ property : "s",
74
+ operators : [{
75
+ property : "s",
76
+ field: "Name",
77
+ operator: "notEqual",
78
+ value : "richy",
79
+ logicalOperator : "and"
80
+ },{
81
+ property : "s",
82
+ field: "james",
83
+ operator: "equal",
84
+ value : "josj",
85
+ logicalOperator : ""
86
+ }]
87
+ },{
88
+ returnName : "name",
89
+ field : {
90
+ property : "s",
91
+ name : "name"
92
+ },
93
+ property : "s",
94
+ operator: [{
95
+ property : "s",
96
+ field: "name",
97
+ operator: "not",
98
+ value : "",
99
+ logicalOperator : "",
100
+ },
101
+ {
102
+ property : "s",
103
+ field: "Name",
104
+ operator: "in",
105
+ value : "jist",
106
+ logicalOperator : "",
107
+ }]
108
+ },
109
+ {
110
+ returnName : "NumberOfFruits",
111
+ fields : {},
112
+ property : "s",
113
+ operator: [],
114
+ }
115
+ ],
116
+ relationships : [{ // union all relationships together
117
+ name: "Fruits", // could be changed nested type
118
+ dateRange: "",
119
+ limits: {
120
+ amount :1,
121
+ object : "single" // nested limit will produce inner select top
122
+ },
123
+ selects:[],
124
+ relationships: [{
125
+ name: "flys", // could be changed nested type
126
+ dateRange: "",
127
+ limits: {},
128
+ selects:[],
129
+ relationships: [],
130
+ conditions: []
131
+ }],
132
+ conditions: [{
133
+ type: "where",
134
+ context: "r",
135
+ field : {
136
+ property : "r",
137
+ name : "id"
138
+ },
139
+ operators: [{
140
+ property : "r",
141
+ field: "name",
142
+ operator: "equal",
143
+ value : "richard",
144
+ logicalOperator : ""
145
+ }],
146
+ }]
147
+ }]
148
+
149
+ };
150
+
151
+
152
+ var tt = new Tokenize();
153
+ var tokenList = tt.Tokenize(qq);
154
+ var james = this.__queryModel.select(tokenList);
155
+ var jj = "";
156
+ }
157
+
158
+ where(query){
159
+ if(query !== undefined || query !== null){
160
+ var tt = new Tokenize();
161
+ var tokenList = tt.Tokenize(query);
162
+ this.__queryModel.condition(tokenList, "where");
163
+ }
164
+ return this;
165
+ }
166
+
167
+ select(query){
168
+ var tt = new Tokenize();
169
+ var tokenList = tt.Tokenize(query);
170
+ this.__queryModel.select(tokenList);
171
+ return this;
172
+ }
173
+
174
+ // can only be used at the end of a query not an inner query
175
+ single(){
176
+ return this;
177
+ }
178
+
179
+ distinct(){
180
+ return this;
181
+ }
182
+ }
183
+
184
184
  module.exports = simpleQuery;
@@ -1,52 +1,52 @@
1
- // ALL THIS SHOULD DO IS BUILD A SQL QUERY
2
- // version 1.0.1
3
-
4
- var entityTrackerModel = require('masterrecord/Entity/EntityTrackerModel');
5
-
6
- class queryBuilder{
7
- constructor(model, context) {
8
- this.__model = model;
9
- this.__context = context;
10
- this.__contextList = context.__allContexts;
11
- }
12
-
13
- raw(query){
14
- // get the query
15
- var entityValue = this.__context._SQLEngine.get(query);
16
- if(entityValue){
17
- var ent = new entityTrackerModel();
18
- ent.build(entityValue, this.__model);
19
- ent.__state = "track";
20
- this.__context.__Track(ent);
21
- return ent;
22
- }else{
23
- return null;
24
- }
25
-
26
- }
27
-
28
- add(entityValue){
29
- // This will call context API to REMOVE entity to update list
30
- var ent = new entityTrackerModel();
31
- ent.build(entityValue, this.__model);
32
- ent.__state = "insert";
33
- this.__context.__Track(ent);
34
- }
35
-
36
- remove(entityValue){
37
- // This will call context API to REMOVE entity to Delete list
38
- var ent = new entityTrackerModel();
39
- ent.build(entityValue, this.__model);
40
- ent.__state = "delete";
41
- this.__context.__Track(ent);
42
- }
43
-
44
- track(entityValue){
45
- var ent = new entityTrackerModel();
46
- ent.build(entityValue, this.__model);
47
- ent.__state = "track";
48
- return this.__context.__Track(ent);
49
- }
50
- }
51
-
1
+
2
+ // version 1.0.15
3
+
4
+ var entityTrackerModel = require('masterrecord/Entity/EntityTrackerModel');
5
+
6
+ class queryBuilder{
7
+ constructor(model, context) {
8
+ this.__model = model;
9
+ this.__context = context;
10
+ this.__contextList = context.__allContexts;
11
+ }
12
+
13
+ raw(query){
14
+ // get the query
15
+ var entityValue = this.__context._SQLEngine.get(query);
16
+ if(entityValue){
17
+ var ent = new entityTrackerModel();
18
+ ent.build(entityValue, this.__model);
19
+ ent.__state = "track";
20
+ this.__context.__Track(ent);
21
+ return ent;
22
+ }else{
23
+ return null;
24
+ }
25
+
26
+ }
27
+
28
+ add(entityValue){
29
+ // This will call context API to REMOVE entity to update list
30
+ var ent = new entityTrackerModel();
31
+ ent.build(entityValue, this.__model);
32
+ ent.__state = "insert";
33
+ this.__context.__Track(ent);
34
+ }
35
+
36
+ remove(entityValue){
37
+ // This will call context API to REMOVE entity to Delete list
38
+ var ent = new entityTrackerModel();
39
+ ent.build(entityValue, this.__model);
40
+ ent.__state = "delete";
41
+ this.__context.__Track(ent);
42
+ }
43
+
44
+ track(entityValue){
45
+ var ent = new entityTrackerModel();
46
+ ent.build(entityValue, this.__model);
47
+ ent.__state = "track";
48
+ return this.__context.__Track(ent);
49
+ }
50
+ }
51
+
52
52
  module.exports = queryBuilder;
@@ -1,52 +1,56 @@
1
-
2
- class SQLEngine {
3
- update(query){
4
- var query = ` UPDATE ${query.tableName}
5
- SET ${query.arg}
6
- WHERE ${query.primaryKey} = ${query.value}` // primary key for that table =
7
- return this.execute(query);
8
- }
9
-
10
- delete(query){
11
- var query = `DELETE FROM ${query.tableName} WHERE ${query.primaryKey} = ${query.value}`;
12
- return this.execute(query);
13
- }
14
-
15
- insert(query){
16
- var query = `INSERT INTO ${query.tableName} (${query.columns})
17
- VALUES (${query.values})`;
18
- return this.execute(query);
19
- }
20
-
21
- execute(query){
22
-
23
- switch(this.db.__name) {
24
- case "better-sqlite3":
25
- console.log("SQL:", query);
26
- return this.db.exec(query);
27
- // code block
28
- break;
29
- }
30
- }
31
-
32
- get(query){
33
- switch(this.db.__name) {
34
- case "better-sqlite3":
35
- try {
36
- console.log("SQL:", query);
37
- return this.db.prepare(query).get();
38
- } catch (err) {
39
- console.error(err);
40
- return null;
41
- }
42
- // code block
43
- break;
44
- }
45
- }
46
-
47
- setDB(db){
48
- this.db = db;
49
- }
50
- }
51
-
52
- module.exports = SQLEngine;
1
+
2
+ class SQLiteEngine {
3
+ update(query){
4
+ var query = ` UPDATE ${query.tableName}
5
+ SET ${query.arg}
6
+ WHERE ${query.primaryKey} = ${query.value}` // primary key for that table =
7
+ return this.execute(query);
8
+ }
9
+
10
+ delete(query){
11
+ var query = `DELETE FROM ${query.tableName} WHERE ${query.primaryKey} = ${query.value}`;
12
+ return this.execute(query);
13
+ }
14
+
15
+ insert(query){
16
+ var query = `INSERT INTO ${query.tableName} (${query.columns})
17
+ VALUES (${query.values})`;
18
+ return this.execute(query);
19
+ }
20
+
21
+ execute(query){
22
+
23
+ switch(this.db.__name) {
24
+ case "better-sqlite3":
25
+ console.log("SQL:", query);
26
+ return this.db.exec(query);
27
+ // code block
28
+ break;
29
+ }
30
+ }
31
+
32
+ get(query){
33
+ switch(this.db.__name) {
34
+ case "better-sqlite3":
35
+ try {
36
+ console.log("SQL:", query);
37
+ return this.db.prepare(query).get();
38
+ } catch (err) {
39
+ console.error(err);
40
+ return null;
41
+ }
42
+ // code block
43
+ break;
44
+ }
45
+ }
46
+
47
+ setDB(env, sqlName){
48
+ const sqlite3 = require(sqlName);
49
+ let DBAddress = `${env.connection}${env.env}.sqlite3`;
50
+ this.db = new sqlite3(DBAddress, env);
51
+ db.__name = sqlName;
52
+ return db;
53
+ }
54
+ }
55
+
56
+ module.exports = SQLiteEngine;