@@ -14,7 +14,7 @@ export async function GET(request: Request) {
1414 const coreValues = url . searchParams . get ( "coreValues" ) ?. split ( "," ) . filter ( Boolean ) || [ ] ;
1515 const causeAreas = url . searchParams . get ( "causeAreas" ) ?. split ( "," ) . filter ( Boolean ) || [ ] ;
1616 const connections = url . searchParams . get ( "connections" ) ?. split ( "," ) . filter ( Boolean ) || [ ] ;
17- const searchQuery = url . searchParams . get ( "searchQuery" ) || "" ;
17+ const searchQueries = url . searchParams . get ( "searchQuery" ) ?. split ( "," ) . map ( q => q . trim ( ) ) . filter ( Boolean ) || [ ] ;
1818
1919 const profilesPerPage = 100 ;
2020 const offset = ( page - 1 ) * profilesPerPage ;
@@ -145,94 +145,99 @@ export async function GET(request: Request) {
145145 } ;
146146 }
147147
148- if ( searchQuery ) {
149- where . OR = [
150- ...( where . OR ?? [ ] ) ,
151- { name : { contains : searchQuery , mode : 'insensitive' } } ,
152- // {email: {contains: searchQuery, mode: 'insensitive'}},
153- {
154- profile : {
155- description : { contains : searchQuery , mode : 'insensitive' } ,
156- } ,
157- } ,
158- {
159- profile : {
160- occupation : { contains : searchQuery , mode : 'insensitive' } ,
161- } ,
162- } ,
163- {
164- profile : {
165- location : { contains : searchQuery , mode : 'insensitive' } ,
166- } ,
167- } ,
168- {
169- profile : {
170- contactInfo : { contains : searchQuery , mode : 'insensitive' } ,
171- } ,
172- } ,
173- {
174- profile : {
175- intellectualInterests : {
176- some : {
177- interest : {
178- name : { contains : searchQuery , mode : "insensitive" } ,
148+ if ( searchQueries . length > 0 ) {
149+ where . AND = [
150+ ...( where . AND ?? [ ] ) ,
151+ ...searchQueries . map ( query => ( {
152+ OR : [
153+ { name : { contains : query , mode : 'insensitive' } } ,
154+ // {email: {contains: searchQuery, mode: 'insensitive'}},
155+ {
156+ profile : {
157+ description : { contains : query , mode : 'insensitive' } ,
158+ } ,
159+ } ,
160+ {
161+ profile : {
162+ occupation : { contains : query , mode : 'insensitive' } ,
163+ } ,
164+ } ,
165+ {
166+ profile : {
167+ location : { contains : query , mode : 'insensitive' } ,
168+ } ,
169+ } ,
170+ {
171+ profile : {
172+ contactInfo : { contains : query , mode : 'insensitive' } ,
173+ } ,
174+ } ,
175+ {
176+ profile : {
177+ intellectualInterests : {
178+ some : {
179+ interest : {
180+ name : { contains : query , mode : "insensitive" } ,
181+ } ,
182+ } ,
179183 } ,
180184 } ,
181185 } ,
182- } ,
183- } ,
184- {
185- profile : {
186- coreValues : {
187- some : {
188- value : {
189- name : { contains : searchQuery , mode : "insensitive" } ,
186+ {
187+ profile : {
188+ coreValues : {
189+ some : {
190+ value : {
191+ name : { contains : query , mode : "insensitive" } ,
192+ } ,
193+ } ,
190194 } ,
191195 } ,
192196 } ,
193- } ,
194- } ,
195- {
196- profile : {
197- causeAreas : {
198- some : {
199- causeArea : {
200- name : { contains : searchQuery , mode : "insensitive" } ,
197+ {
198+ profile : {
199+ causeAreas : {
200+ some : {
201+ causeArea : {
202+ name : { contains : query , mode : "insensitive" } ,
203+ } ,
204+ } ,
201205 } ,
202206 } ,
203207 } ,
204- } ,
205- } ,
206- {
207- profile : {
208- desiredConnections : {
209- some : {
210- connection : {
211- name : { contains : searchQuery , mode : "insensitive" } ,
208+ {
209+ profile : {
210+ desiredConnections : {
211+ some : {
212+ connection : {
213+ name : { contains : query , mode : "insensitive" } ,
214+ } ,
215+ } ,
212216 } ,
213217 } ,
214218 } ,
215- } ,
216- } ,
217- {
218- profile : {
219- promptAnswers : {
220- some : {
221- answer : { contains : searchQuery , mode : "insensitive" } ,
219+ {
220+ profile : {
221+ promptAnswers : {
222+ some : {
223+ answer : { contains : query , mode : "insensitive" } ,
224+ } ,
225+ } ,
222226 } ,
223227 } ,
224- } ,
225- } ,
226- {
227- profile : {
228- promptAnswers : {
229- some : {
230- prompt : { contains : searchQuery , mode : "insensitive" } ,
228+ {
229+ profile : {
230+ promptAnswers : {
231+ some : {
232+ prompt : { contains : query , mode : "insensitive" } ,
233+ } ,
234+ } ,
231235 } ,
232236 } ,
233- } ,
234- } ,
235- ] ;
237+ ]
238+ } ) )
239+ ]
240+
236241 }
237242
238243 console . log ( where . profile ) ;
0 commit comments