File tree 2 files changed +15
-1
lines changed
2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -1750,7 +1750,12 @@ class RequestHandler extends APIHandlerBase {
1750
1750
: this . makePrismaIdFilter ( info . idFields , value , false ) ;
1751
1751
return { some : filterValue } ;
1752
1752
} else {
1753
- return { is : this . makePrismaIdFilter ( info . idFields , value , false ) } ;
1753
+ const values = value . split ( ',' ) . filter ( ( i ) => i ) ;
1754
+ if ( values . length > 1 ) {
1755
+ return { OR : values . map ( ( v ) => this . makePrismaIdFilter ( info . idFields , v , false ) ) } ;
1756
+ } else {
1757
+ return { is : this . makePrismaIdFilter ( info . idFields , value , false ) } ;
1758
+ }
1754
1759
}
1755
1760
} else {
1756
1761
const coerced = this . coerce ( fieldInfo . type , value ) ;
Original file line number Diff line number Diff line change @@ -664,6 +664,15 @@ describe('REST server tests', () => {
664
664
expect ( r . body . data ) . toHaveLength ( 1 ) ;
665
665
expect ( r . body . data [ 0 ] ) . toMatchObject ( { id : 1 } ) ;
666
666
667
+ // relation filter with multiple values
668
+ r = await handler ( {
669
+ method : 'get' ,
670
+ path : '/post' ,
671
+ query : { [ 'filter[author]' ] : 'user1,user2' } ,
672
+ prisma,
673
+ } ) ;
674
+ expect ( r . body . data ) . toHaveLength ( 2 ) ;
675
+
667
676
// invalid filter field
668
677
r = await handler ( {
669
678
method : 'get' ,
You can’t perform that action at this time.
0 commit comments