Skip to content

Commit 85bbec7

Browse files
committed
Merge branch 'feat/ts-vector-filter-type' of github.com:abdulrahmancodes/twenty into feat/ts-vector-filter-type
2 parents 7d70939 + d1d93b5 commit 85bbec7

File tree

3 files changed

+18
-29
lines changed

3 files changed

+18
-29
lines changed

packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { FieldMetadataType } from 'twenty-shared/types';
21
import { capitalize } from 'twenty-shared/utils';
32
import { WhereExpressionBuilder } from 'typeorm';
43

@@ -57,7 +56,6 @@ export class GraphqlQueryFilterFieldParser {
5756

5857
if (
5958
ARRAY_OPERATORS.includes(operator) &&
60-
fieldMetadata.type !== FieldMetadataType.TS_VECTOR &&
6159
(!Array.isArray(value) || value.length === 0)
6260
) {
6361
throw new GraphqlQueryRunnerException(
@@ -71,7 +69,6 @@ export class GraphqlQueryFilterFieldParser {
7169
objectNameSingular,
7270
key,
7371
value,
74-
fieldMetadataType: fieldMetadata.type,
7572
});
7673

7774
if (isFirst) {
@@ -119,7 +116,6 @@ export class GraphqlQueryFilterFieldParser {
119116

120117
if (
121118
ARRAY_OPERATORS.includes(operator) &&
122-
fieldMetadata.type !== FieldMetadataType.TS_VECTOR &&
123119
(!Array.isArray(value) || value.length === 0)
124120
) {
125121
throw new GraphqlQueryRunnerException(
@@ -132,7 +128,6 @@ export class GraphqlQueryFilterFieldParser {
132128
operator,
133129
objectNameSingular,
134130
key: fullFieldName,
135-
fieldMetadataType: subFieldMetadata.type,
136131
value,
137132
});
138133

packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/compute-where-condition-parts.ts

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { FieldMetadataType } from 'twenty-shared/types';
21
import { ObjectLiteral } from 'typeorm';
32

43
import {
@@ -16,19 +15,15 @@ export const computeWhereConditionParts = ({
1615
objectNameSingular,
1716
key,
1817
value,
19-
fieldMetadataType,
2018
}: {
2119
operator: string;
2220
objectNameSingular: string;
2321
key: string;
2422
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2523
value: any;
26-
fieldMetadataType?: FieldMetadataType;
2724
}): WhereConditionParts => {
2825
const uuid = Math.random().toString(36).slice(2, 7);
2926

30-
const isTSVectorField = fieldMetadataType === FieldMetadataType.TS_VECTOR;
31-
3227
switch (operator) {
3328
case 'isEmptyArray':
3429
return {
@@ -96,28 +91,27 @@ export const computeWhereConditionParts = ({
9691
params: { [`${key}${uuid}`]: `${value}` },
9792
};
9893
case 'contains':
99-
if (isTSVectorField) {
100-
const tsQuery = value
101-
.split(/\s+/)
102-
.map((term: string) => `${term}:*`)
103-
.join(' & ');
104-
105-
return {
106-
sql: `(
107-
"${objectNameSingular}"."${key}" @@ to_tsquery('simple', :${key}${uuid}Ts) OR
108-
"${objectNameSingular}"."${key}"::text ILIKE :${key}${uuid}Like
109-
)`,
110-
params: {
111-
[`${key}${uuid}Ts`]: tsQuery,
112-
[`${key}${uuid}Like`]: `%${value}%`,
113-
},
114-
};
115-
}
116-
11794
return {
11895
sql: `"${objectNameSingular}"."${key}" @> ARRAY[:...${key}${uuid}]`,
11996
params: { [`${key}${uuid}`]: value },
12097
};
98+
case 'search': {
99+
const tsQuery = value
100+
.split(/\s+/)
101+
.map((term: string) => `${term}:*`)
102+
.join(' & ');
103+
104+
return {
105+
sql: `(
106+
"${objectNameSingular}"."${key}" @@ to_tsquery('simple', :${key}${uuid}Ts) OR
107+
"${objectNameSingular}"."${key}"::text ILIKE :${key}${uuid}Like
108+
)`,
109+
params: {
110+
[`${key}${uuid}Ts`]: tsQuery,
111+
[`${key}${uuid}Like`]: `%${value}%`,
112+
},
113+
};
114+
}
121115
case 'notContains':
122116
return {
123117
sql: `NOT ("${objectNameSingular}"."${key}"::text[] && ARRAY[:...${key}${uuid}]::text[])`,

packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/input/ts-vector-filter.input-type.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ import { GraphQLInputObjectType, GraphQLString } from 'graphql';
33
export const TSVectorFilterType = new GraphQLInputObjectType({
44
name: 'TSVectorFilter',
55
fields: {
6-
contains: { type: GraphQLString },
6+
search: { type: GraphQLString },
77
},
88
});

0 commit comments

Comments
 (0)