-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCriteria.js
65 lines (52 loc) · 1.17 KB
/
Criteria.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
const AND = 0;
const OR = 1;
const QUERY = 3;
const NULL_CHECK = 4;
class Criteria {
constructor(){
this.query = " WHERE ";
this.queryObjects = [];
}
and(query){
this.query += " AND ("+query()+")";
return this;
}
or(query){
return this;
}
like(field, value){
this.queryObjects.push({QUERY, field, value});
return this;
}
equals(field, value){
this.queryObjects.push({QUERY, field, value});
return this;
}
notEqual(field, value){
this.queryObjects.push({QUERY, field, value});
return this;
}
greater(field, value){
this.queryObjects.push({QUERY, field, value});
return this;
}
lessThan(field, value){
this.queryObjects.push({QUERY, field, value});
return this;
}
inNotNull(field){
this.queryObjects.push({QUERY, field, null});
return this;
}
isNull(field){
this.queryObjects.push({QUERY, field, null});
return this;
}
build(){
}
call(){
this.queryObjects.forEach(function(query, index){
});
}
}
export default Criteria;