+ public addNotIn(field: string, value?: string | string[], resourcePrefix?: string) {
+ return this.addCondition(field, "not in", value, "", "", resourcePrefix);
+ }
+
+ public addGt(field: string, value?: string, resourcePrefix?: string) {
+ return this.addCondition(field, ">", value, "", "", resourcePrefix);
+ }
+
+ public addGte(field: string, value?: string, resourcePrefix?: string) {
+ return this.addCondition(field, ">=", value, "", "", resourcePrefix);
+ }
+
+ public addLt(field: string, value?: string, resourcePrefix?: string) {
+ return this.addCondition(field, "<", value, "", "", resourcePrefix);
+ }
+
+ public addLte(field: string, value?: string, resourcePrefix?: string) {
+ return this.addCondition(field, "<=", value, "", "", resourcePrefix);
+ }
+
+ public addExists(value?: string, resourcePrefix?: string) {
+ return this.addCondition("properties", "exists", value, "", "", resourcePrefix);
+ }
+ public addDoesNotExist(field: string, resourcePrefix?: string) {
+ return this.addCondition("properties." + field, "exists", false, "", "", resourcePrefix);
+ }
+
+ public addFullTextSearch(value: string) {
+ const terms = value.trim().split(/(\s+)/);
+ terms.forEach(term => {
+ if (term !== " ") {
+ this.addCondition("any", "ilike", term, "%", "%");
+ }
+ });
+ return this;
+ }
+